category_theory.shift.basicMathlib.CategoryTheory.Shift.Basic

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -545,8 +545,8 @@ abbrev shiftEquiv (i : A) : C ≌ C :=
 variable (X Y : C) (f : X ⟶ Y)
 
 /-- Shifting by `i` is an equivalence. -/
-instance (i : A) : IsEquivalence (shiftFunctor C i) :=
-  IsEquivalence.ofEquivalence (shiftEquiv C i)
+instance (i : A) : CategoryTheory.Functor.IsEquivalence (shiftFunctor C i) :=
+  CategoryTheory.Functor.IsEquivalence.ofEquivalence (shiftEquiv C i)
 
 #print CategoryTheory.shiftFunctor_inv /-
 @[simp]
@@ -561,7 +561,7 @@ variable (C)
 
 #print CategoryTheory.shiftFunctor_essSurj /-
 /-- Shifting by `n` is an essentially surjective functor. -/
-instance shiftFunctor_essSurj (i : A) : EssSurj (shiftFunctor C i) :=
+instance shiftFunctor_essSurj (i : A) : CategoryTheory.Functor.EssSurj (shiftFunctor C i) :=
   Equivalence.essSurj_of_equivalence _
 #align category_theory.shift_functor_ess_surj CategoryTheory.shiftFunctor_essSurj
 -/
@@ -813,7 +813,7 @@ end AddCommMonoid
 
 variable {C A} {D : Type _} [Category D] [AddMonoid A] [HasShift D A]
 
-variable (F : C ⥤ D) [Full F] [Faithful F]
+variable (F : C ⥤ D) [CategoryTheory.Functor.Full F] [CategoryTheory.Functor.Faithful F]
 
 section
 
Diff
@@ -348,8 +348,8 @@ theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
   by
   have := nat_trans.congr_app (congr_arg iso.inv (shift_functor_add'_zero_add C a)) X
   simp only [iso.trans_inv, iso_whisker_right_inv, iso.symm_inv, nat_trans.comp_app,
-    whisker_right_app, functor.left_unitor_hom_app] at this 
-  dsimp at this 
+    whisker_right_app, functor.left_unitor_hom_app] at this
+  dsimp at this
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_app
 -/
@@ -389,8 +389,8 @@ theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
   by
   have := nat_trans.congr_app (congr_arg iso.inv (shift_functor_add'_add_zero C a)) X
   simp only [iso.trans_inv, iso_whisker_left_inv, iso.symm_inv, nat_trans.comp_app,
-    whisker_left_app, functor.right_unitor_hom_app] at this 
-  dsimp at this 
+    whisker_left_app, functor.right_unitor_hom_app] at this
+  dsimp at this
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_app
 -/
@@ -897,7 +897,7 @@ def hasShiftOfFullyFaithful : HasShift C A :=
               category.assoc, iso.inv_hom_id_app_assoc, iso.inv_hom_id_app]
             erw [(i m₃).Hom.naturality]
             have := dcongr_arg (fun a => (i a).Hom.app X) (add_assoc m₁ m₂ m₃)
-            dsimp at this 
+            dsimp at this
             dsimp
             rw [iso.inv_hom_id_app_assoc, map_has_shift_of_fully_faithful_add_hom_app, this,
               eq_to_hom_map, category.comp_id, ← functor.map_comp, category.assoc,
@@ -910,7 +910,7 @@ def hasShiftOfFullyFaithful : HasShift C A :=
         F.map_injective
           (by
             have := dcongr_arg (fun a => (i a).Hom.app X) (zero_add n)
-            dsimp at this 
+            dsimp at this
             rw [← cancel_mono ((i n).Hom.app ((s 0).obj X))]
             simp only [this, map_has_shift_of_fully_faithful_add_hom_app,
               shift_functor_add_zero_add_hom_app, eq_to_hom_map, category.assoc,
@@ -923,7 +923,7 @@ def hasShiftOfFullyFaithful : HasShift C A :=
         F.map_injective
           (by
             have := dcongr_arg (fun a => (i a).Hom.app X) (add_zero n)
-            dsimp at this 
+            dsimp at this
             simpa [this, ← nat_trans.naturality_assoc, eq_to_hom_map,
               shift_functor_add_add_zero_hom_app]) }
 #align category_theory.has_shift_of_fully_faithful CategoryTheory.hasShiftOfFullyFaithful
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Johan Commelin, Andrew Yang, Joël Riou
 -/
-import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Zero
-import Mathbin.CategoryTheory.Monoidal.End
-import Mathbin.CategoryTheory.Monoidal.Discrete
+import CategoryTheory.Limits.Preserves.Shapes.Zero
+import CategoryTheory.Monoidal.End
+import CategoryTheory.Monoidal.Discrete
 
 #align_import category_theory.shift.basic from "leanprover-community/mathlib"@"d64d67d000b974f0d86a2be7918cf800be6271c8"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Johan Commelin, Andrew Yang, Joël Riou
-
-! This file was ported from Lean 3 source module category_theory.shift.basic
-! leanprover-community/mathlib commit d64d67d000b974f0d86a2be7918cf800be6271c8
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Limits.Preserves.Shapes.Zero
 import Mathbin.CategoryTheory.Monoidal.End
 import Mathbin.CategoryTheory.Monoidal.Discrete
 
+#align_import category_theory.shift.basic from "leanprover-community/mathlib"@"d64d67d000b974f0d86a2be7918cf800be6271c8"
+
 /-!
 # Shift
 
Diff
@@ -93,6 +93,7 @@ variable {C A}
 
 attribute [reassoc] assoc_hom_app
 
+#print CategoryTheory.ShiftMkCore.assoc_inv_app /-
 @[reassoc]
 theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
     (h.f m₃).map ((h.add m₁ m₂).inv.app X) ≫ (h.add (m₁ + m₂) m₃).inv.app X =
@@ -105,7 +106,9 @@ theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
     category.id_comp, iso.inv_hom_id_app_assoc, iso.inv_hom_id_app]
   rfl
 #align category_theory.shift_mk_core.assoc_inv_app CategoryTheory.ShiftMkCore.assoc_inv_app
+-/
 
+#print CategoryTheory.ShiftMkCore.zero_add_inv_app /-
 theorem zero_add_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     (h.add 0 n).inv.app X = (h.f n).map (h.zero.Hom.app X) ≫ eqToHom (by dsimp <;> rw [zero_add]) :=
   by
@@ -113,13 +116,16 @@ theorem zero_add_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     ← functor.map_comp_assoc, iso.inv_hom_id_app, Functor.map_id, category.id_comp, eq_to_hom_trans,
     eq_to_hom_refl]
 #align category_theory.shift_mk_core.zero_add_inv_app CategoryTheory.ShiftMkCore.zero_add_inv_app
+-/
 
+#print CategoryTheory.ShiftMkCore.add_zero_inv_app /-
 theorem add_zero_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     (h.add n 0).inv.app X = h.zero.Hom.app ((h.f n).obj X) ≫ eqToHom (by dsimp <;> rw [add_zero]) :=
   by
   rw [← cancel_epi ((h.add n 0).Hom.app X), iso.hom_inv_id_app, h.add_zero_hom_app, category.assoc,
     iso.inv_hom_id_app_assoc, eq_to_hom_trans, eq_to_hom_refl]
 #align category_theory.shift_mk_core.add_zero_inv_app CategoryTheory.ShiftMkCore.add_zero_inv_app
+-/
 
 end ShiftMkCore
 
@@ -166,10 +172,12 @@ section
 
 variable [HasShift C A]
 
+#print CategoryTheory.shiftMonoidalFunctor /-
 /-- The monoidal functor from `A` to `C ⥤ C` given a `has_shift` instance. -/
 def shiftMonoidalFunctor : MonoidalFunctor (Discrete A) (C ⥤ C) :=
   HasShift.shift
 #align category_theory.shift_monoidal_functor CategoryTheory.shiftMonoidalFunctor
+-/
 
 variable {A}
 
@@ -180,37 +188,48 @@ def shiftFunctor (i : A) : C ⥤ C :=
 #align category_theory.shift_functor CategoryTheory.shiftFunctor
 -/
 
+#print CategoryTheory.shiftFunctorAdd /-
 /-- Shifting by `i + j` is the same as shifting by `i` and then shifting by `j`. -/
 def shiftFunctorAdd (i j : A) : shiftFunctor C (i + j) ≅ shiftFunctor C i ⋙ shiftFunctor C j :=
   ((shiftMonoidalFunctor C A).μIso ⟨i⟩ ⟨j⟩).symm
 #align category_theory.shift_functor_add CategoryTheory.shiftFunctorAdd
+-/
 
+#print CategoryTheory.shiftFunctorAdd' /-
 /-- When `k = i + j`, shifting by `k` is the same as shifting by `i` and then shifting by `j`. -/
 def shiftFunctorAdd' (i j k : A) (h : i + j = k) :
     shiftFunctor C k ≅ shiftFunctor C i ⋙ shiftFunctor C j :=
   eqToIso (by rw [h]) ≪≫ shiftFunctorAdd C i j
 #align category_theory.shift_functor_add' CategoryTheory.shiftFunctorAdd'
+-/
 
+#print CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAdd /-
 theorem shiftFunctorAdd'_eq_shiftFunctorAdd (i j : A) :
     shiftFunctorAdd' C i j (i + j) rfl = shiftFunctorAdd C i j := by ext1; apply category.id_comp
 #align category_theory.shift_functor_add'_eq_shift_functor_add CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAdd
+-/
 
 variable (A)
 
+#print CategoryTheory.shiftFunctorZero /-
 /-- Shifting by zero is the identity functor. -/
 def shiftFunctorZero : shiftFunctor C (0 : A) ≅ 𝟭 C :=
   (shiftMonoidalFunctor C A).εIso.symm
 #align category_theory.shift_functor_zero CategoryTheory.shiftFunctorZero
+-/
 
 end
 
 variable {C A}
 
+#print CategoryTheory.ShiftMkCore.shiftFunctor_eq /-
 theorem ShiftMkCore.shiftFunctor_eq (h : ShiftMkCore C A) (a : A) :
     @shiftFunctor _ _ _ _ (hasShiftMk C A h) a = h.f a :=
   Functor.ext (by tidy) (by tidy)
 #align category_theory.shift_mk_core.shift_functor_eq CategoryTheory.ShiftMkCore.shiftFunctor_eq
+-/
 
+#print CategoryTheory.ShiftMkCore.shiftFunctorZero_eq /-
 theorem ShiftMkCore.shiftFunctorZero_eq (h : ShiftMkCore C A) :
     @shiftFunctorZero _ _ _ _ (hasShiftMk C A h) = h.zero :=
   by
@@ -222,7 +241,9 @@ theorem ShiftMkCore.shiftFunctorZero_eq (h : ShiftMkCore C A) :
     rfl
   rfl
 #align category_theory.shift_mk_core.shift_functor_zero_eq CategoryTheory.ShiftMkCore.shiftFunctorZero_eq
+-/
 
+#print CategoryTheory.ShiftMkCore.shiftFunctorAdd_eq /-
 theorem ShiftMkCore.shiftFunctorAdd_eq (h : ShiftMkCore C A) (a b : A) :
     @shiftFunctorAdd _ _ _ _ (hasShiftMk C A h) a b = h.add a b :=
   by
@@ -234,12 +255,11 @@ theorem ShiftMkCore.shiftFunctorAdd_eq (h : ShiftMkCore C A) (a b : A) :
     rfl
   rfl
 #align category_theory.shift_mk_core.shift_functor_add_eq CategoryTheory.ShiftMkCore.shiftFunctorAdd_eq
+-/
 
--- mathport name: «expr ⟦ ⟧»
 notation -- Any better notational suggestions?
 X "⟦" n "⟧" => (shiftFunctor _ n).obj X
 
--- mathport name: «expr ⟦ ⟧'»
 notation f "⟦" n "⟧'" => (shiftFunctor _ n).map f
 
 variable (C)
@@ -248,6 +268,7 @@ variable [HasShift C A]
 
 attribute [local reducible] endofunctor_monoidal_category Discrete.addMonoidal
 
+#print CategoryTheory.shiftFunctorAdd'_zero_add /-
 theorem shiftFunctorAdd'_zero_add (a : A) :
     shiftFunctorAdd' C 0 a a (zero_add a) =
       (Functor.leftUnitor _).symm ≪≫
@@ -258,7 +279,9 @@ theorem shiftFunctorAdd'_zero_add (a : A) :
   erw [obj_ε_app]
   simpa [eq_to_hom_map]
 #align category_theory.shift_functor_add'_zero_add CategoryTheory.shiftFunctorAdd'_zero_add
+-/
 
+#print CategoryTheory.shiftFunctorAdd'_add_zero /-
 theorem shiftFunctorAdd'_add_zero (a : A) :
     shiftFunctorAdd' C a 0 a (add_zero a) =
       (Functor.rightUnitor _).symm ≪≫
@@ -269,7 +292,9 @@ theorem shiftFunctorAdd'_add_zero (a : A) :
   erw [ε_app_obj]
   simpa [eq_to_hom_map]
 #align category_theory.shift_functor_add'_add_zero CategoryTheory.shiftFunctorAdd'_add_zero
+-/
 
+#print CategoryTheory.shiftFunctorAdd'_assoc /-
 theorem shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) :
     shiftFunctorAdd' C a₁₂ a₃ a₁₂₃ (by rw [← h₁₂, h₁₂₃]) ≪≫
@@ -284,7 +309,9 @@ theorem shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (
   dsimp [shift_functor_add', shift_functor_add, shift_functor]
   simp [obj_μ_inv_app, eq_to_hom_map]
 #align category_theory.shift_functor_add'_assoc CategoryTheory.shiftFunctorAdd'_assoc
+-/
 
+#print CategoryTheory.shiftFunctorAdd_assoc /-
 theorem shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
     shiftFunctorAdd C (a₁ + a₂) a₃ ≪≫
         isoWhiskerRight (shiftFunctorAdd C a₁ a₂) _ ≪≫ Functor.associator _ _ _ =
@@ -296,14 +323,18 @@ theorem shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
     nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_assoc C a₁ a₂ a₃ _ _ _ rfl rfl rfl))
       X
 #align category_theory.shift_functor_add_assoc CategoryTheory.shiftFunctorAdd_assoc
+-/
 
 variable {C}
 
+#print CategoryTheory.shiftFunctorAdd'_zero_add_hom_app /-
 theorem shiftFunctorAdd'_zero_add_hom_app (a : A) (X : C) :
     (shiftFunctorAdd' C 0 a a (zero_add a)).Hom.app X = (shiftFunctorZero C A).inv.app X⟦a⟧' := by
   simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_zero_add C a)) X
 #align category_theory.shift_functor_add'_zero_add_hom_app CategoryTheory.shiftFunctorAdd'_zero_add_hom_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd_zero_add_hom_app /-
 theorem shiftFunctorAdd_zero_add_hom_app (a : A) (X : C) :
     (shiftFunctorAdd C 0 a).Hom.app X =
       eqToHom (by dsimp <;> rw [zero_add]) ≫ (shiftFunctorZero C A).inv.app X⟦a⟧' :=
@@ -312,7 +343,9 @@ theorem shiftFunctorAdd_zero_add_hom_app (a : A) (X : C) :
   dsimp [shift_functor_add']
   simp
 #align category_theory.shift_functor_add_zero_add_hom_app CategoryTheory.shiftFunctorAdd_zero_add_hom_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd'_zero_add_inv_app /-
 theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
     (shiftFunctorAdd' C 0 a a (zero_add a)).inv.app X = (shiftFunctorZero C A).Hom.app X⟦a⟧' :=
   by
@@ -322,7 +355,9 @@ theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
   dsimp at this 
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd_zero_add_inv_app /-
 theorem shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
     (shiftFunctorAdd C 0 a).inv.app X =
       (shiftFunctorZero C A).Hom.app X⟦a⟧' ≫ eqToHom (by dsimp <;> rw [zero_add]) :=
@@ -331,12 +366,16 @@ theorem shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
   dsimp [shift_functor_add']
   simp
 #align category_theory.shift_functor_add_zero_add_inv_app CategoryTheory.shiftFunctorAdd_zero_add_inv_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd'_add_zero_hom_app /-
 theorem shiftFunctorAdd'_add_zero_hom_app (a : A) (X : C) :
     (shiftFunctorAdd' C a 0 a (add_zero a)).Hom.app X = (shiftFunctorZero C A).inv.app (X⟦a⟧) := by
   simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_add_zero C a)) X
 #align category_theory.shift_functor_add'_add_zero_hom_app CategoryTheory.shiftFunctorAdd'_add_zero_hom_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd_add_zero_hom_app /-
 theorem shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
     (shiftFunctorAdd C a 0).Hom.app X =
       eqToHom (by dsimp <;> rw [add_zero]) ≫ (shiftFunctorZero C A).inv.app (X⟦a⟧) :=
@@ -345,7 +384,9 @@ theorem shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
   dsimp [shift_functor_add']
   simp
 #align category_theory.shift_functor_add_add_zero_hom_app CategoryTheory.shiftFunctorAdd_add_zero_hom_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd'_add_zero_inv_app /-
 theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
     (shiftFunctorAdd' C a 0 a (add_zero a)).inv.app X = (shiftFunctorZero C A).Hom.app (X⟦a⟧) :=
   by
@@ -355,7 +396,9 @@ theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
   dsimp at this 
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd_add_zero_inv_app /-
 theorem shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
     (shiftFunctorAdd C a 0).inv.app X =
       (shiftFunctorZero C A).Hom.app (X⟦a⟧) ≫ eqToHom (by dsimp <;> rw [add_zero]) :=
@@ -364,7 +407,9 @@ theorem shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
   dsimp [shift_functor_add']
   simp
 #align category_theory.shift_functor_add_add_zero_inv_app CategoryTheory.shiftFunctorAdd_add_zero_inv_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd'_assoc_hom_app /-
 @[reassoc]
 theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) (X : C) :
@@ -376,7 +421,9 @@ theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂
   simpa using
     nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_assoc C _ _ _ _ _ _ h₁₂ h₂₃ h₁₂₃)) X
 #align category_theory.shift_functor_add'_assoc_hom_app CategoryTheory.shiftFunctorAdd'_assoc_hom_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd'_assoc_inv_app /-
 @[reassoc]
 theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) (X : C) :
@@ -388,7 +435,9 @@ theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂
   simpa using
     nat_trans.congr_app (congr_arg iso.inv (shift_functor_add'_assoc C _ _ _ _ _ _ h₁₂ h₂₃ h₁₂₃)) X
 #align category_theory.shift_functor_add'_assoc_inv_app CategoryTheory.shiftFunctorAdd'_assoc_inv_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd_assoc_hom_app /-
 @[reassoc]
 theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
     (shiftFunctorAdd C (a₁ + a₂) a₃).Hom.app X ≫ (shiftFunctorAdd C a₁ a₂).Hom.app X⟦a₃⟧' =
@@ -396,7 +445,9 @@ theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
         (shiftFunctorAdd C a₂ a₃).Hom.app (X⟦a₁⟧) :=
   by simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add_assoc C a₁ a₂ a₃)) X
 #align category_theory.shift_functor_add_assoc_hom_app CategoryTheory.shiftFunctorAdd_assoc_hom_app
+-/
 
+#print CategoryTheory.shiftFunctorAdd_assoc_inv_app /-
 @[reassoc]
 theorem shiftFunctorAdd_assoc_inv_app (a₁ a₂ a₃ : A) (X : C) :
     (shiftFunctorAdd C a₁ a₂).inv.app X⟦a₃⟧' ≫ (shiftFunctorAdd C (a₁ + a₂) a₃).inv.app X =
@@ -404,6 +455,7 @@ theorem shiftFunctorAdd_assoc_inv_app (a₁ a₂ a₃ : A) (X : C) :
         (shiftFunctorAdd' C a₁ (a₂ + a₃) (a₁ + a₂ + a₃) (add_assoc _ _ _).symm).inv.app X :=
   by simpa using nat_trans.congr_app (congr_arg iso.inv (shift_functor_add_assoc C a₁ a₂ a₃)) X
 #align category_theory.shift_functor_add_assoc_inv_app CategoryTheory.shiftFunctorAdd_assoc_inv_app
+-/
 
 end Defs
 
@@ -411,38 +463,50 @@ section AddMonoid
 
 variable {C A} [AddMonoid A] [HasShift C A] (X Y : C) (f : X ⟶ Y)
 
+#print CategoryTheory.HasShift.shift_obj_obj /-
 @[simp]
 theorem HasShift.shift_obj_obj (n : A) (X : C) : (HasShift.shift.obj ⟨n⟩).obj X = X⟦n⟧ :=
   rfl
 #align category_theory.has_shift.shift_obj_obj CategoryTheory.HasShift.shift_obj_obj
+-/
 
+#print CategoryTheory.shiftAdd /-
 /-- Shifting by `i + j` is the same as shifting by `i` and then shifting by `j`. -/
 abbrev shiftAdd (i j : A) : X⟦i + j⟧ ≅ X⟦i⟧⟦j⟧ :=
   (shiftFunctorAdd C i j).app _
 #align category_theory.shift_add CategoryTheory.shiftAdd
+-/
 
+#print CategoryTheory.shift_shift' /-
 theorem shift_shift' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftAdd X i j).inv ≫ f⟦i + j⟧' ≫ (shiftAdd Y i j).Hom := by symm;
   apply nat_iso.naturality_1
 #align category_theory.shift_shift' CategoryTheory.shift_shift'
+-/
 
 variable (A)
 
+#print CategoryTheory.shiftZero /-
 /-- Shifting by zero is the identity functor. -/
 abbrev shiftZero : X⟦0⟧ ≅ X :=
   (shiftFunctorZero C A).app _
 #align category_theory.shift_zero CategoryTheory.shiftZero
+-/
 
+#print CategoryTheory.shiftZero' /-
 theorem shiftZero' : f⟦(0 : A)⟧' = (shiftZero A X).Hom ≫ f ≫ (shiftZero A Y).inv := by symm;
   apply nat_iso.naturality_2
 #align category_theory.shift_zero' CategoryTheory.shiftZero'
+-/
 
 variable (C) {A}
 
+#print CategoryTheory.shiftFunctorCompIsoId /-
 /-- When `i + j = 0`, shifting by `i` and by `j` gives the identity functor -/
 def shiftFunctorCompIsoId (i j : A) (h : i + j = 0) : shiftFunctor C i ⋙ shiftFunctor C j ≅ 𝟭 C :=
   (shiftFunctorAdd' C i j 0 h).symm ≪≫ shiftFunctorZero C A
 #align category_theory.shift_functor_comp_iso_id CategoryTheory.shiftFunctorCompIsoId
+-/
 
 end AddMonoid
 
@@ -450,6 +514,7 @@ section AddGroup
 
 variable (C) {A} [AddGroup A] [HasShift C A]
 
+#print CategoryTheory.shiftEquiv' /-
 /-- shifting by `i` and shifting by `j` forms an equivalence when `i + j = 0`. -/
 @[simps]
 def shiftEquiv' (i j : A) (h : i + j = 0) : C ≌ C
@@ -471,11 +536,14 @@ def shiftEquiv' (i j : A) (h : i + j = 0) : C ≌ C
       dsimp [shift_functor_comp_iso_id, unit_of_tensor_iso_unit, shift_functor_add']
       simpa only [eq_to_hom_map, category.assoc]
 #align category_theory.shift_equiv' CategoryTheory.shiftEquiv'
+-/
 
+#print CategoryTheory.shiftEquiv /-
 /-- shifting by `n` and shifting by `-n` forms an equivalence. -/
 abbrev shiftEquiv (i : A) : C ≌ C :=
   shiftEquiv' C i (-i) (add_neg_self i)
 #align category_theory.shift_equiv CategoryTheory.shiftEquiv
+-/
 
 variable (X Y : C) (f : X ⟶ Y)
 
@@ -483,10 +551,12 @@ variable (X Y : C) (f : X ⟶ Y)
 instance (i : A) : IsEquivalence (shiftFunctor C i) :=
   IsEquivalence.ofEquivalence (shiftEquiv C i)
 
+#print CategoryTheory.shiftFunctor_inv /-
 @[simp]
 theorem shiftFunctor_inv (i : A) : (shiftFunctor C i).inv = shiftFunctor C (-i) :=
   rfl
 #align category_theory.shift_functor_inv CategoryTheory.shiftFunctor_inv
+-/
 
 section
 
@@ -503,39 +573,50 @@ end
 
 variable {C}
 
+#print CategoryTheory.shiftShiftNeg /-
 /-- Shifting by `i` and then shifting by `-i` is the identity. -/
 abbrev shiftShiftNeg (i : A) : X⟦i⟧⟦-i⟧ ≅ X :=
   (shiftEquiv C i).unitIso.symm.app _
 #align category_theory.shift_shift_neg CategoryTheory.shiftShiftNeg
+-/
 
+#print CategoryTheory.shiftNegShift /-
 /-- Shifting by `-i` and then shifting by `i` is the identity. -/
 abbrev shiftNegShift (i : A) : X⟦-i⟧⟦i⟧ ≅ X :=
   (shiftEquiv C i).counitIso.app _
 #align category_theory.shift_neg_shift CategoryTheory.shiftNegShift
+-/
 
 variable {X Y}
 
+#print CategoryTheory.shift_shift_neg' /-
 theorem shift_shift_neg' (i : A) :
     f⟦i⟧'⟦-i⟧' =
       (shiftFunctorCompIsoId C i (-i) (add_neg_self i)).Hom.app X ≫
         f ≫ (shiftFunctorCompIsoId C i (-i) (add_neg_self i)).inv.app Y :=
   (NatIso.naturality_2 (shiftFunctorCompIsoId C i (-i) (add_neg_self i)) f).symm
 #align category_theory.shift_shift_neg' CategoryTheory.shift_shift_neg'
+-/
 
+#print CategoryTheory.shift_neg_shift' /-
 theorem shift_neg_shift' (i : A) :
     f⟦-i⟧'⟦i⟧' =
       (shiftFunctorCompIsoId C (-i) i (neg_add_self i)).Hom.app X ≫
         f ≫ (shiftFunctorCompIsoId C (-i) i (neg_add_self i)).inv.app Y :=
   (NatIso.naturality_2 (shiftFunctorCompIsoId C (-i) i (neg_add_self i)) f).symm
 #align category_theory.shift_neg_shift' CategoryTheory.shift_neg_shift'
+-/
 
+#print CategoryTheory.shift_equiv_triangle /-
 theorem shift_equiv_triangle (n : A) (X : C) :
     (shiftShiftNeg X n).inv⟦n⟧' ≫ (shiftNegShift (X⟦n⟧) n).Hom = 𝟙 (X⟦n⟧) :=
   (shiftEquiv C n).functor_unitIso_comp X
 #align category_theory.shift_equiv_triangle CategoryTheory.shift_equiv_triangle
+-/
 
 section
 
+#print CategoryTheory.shift_shiftFunctorCompIsoId_hom_app /-
 theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
     (shiftFunctorCompIsoId C n m h).Hom.app X⟦n⟧' =
       (shiftFunctorCompIsoId C m n (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg])).Hom.app
@@ -547,7 +628,9 @@ theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
     shift_functor_add'_assoc_inv_app n m n 0 0 n h
       (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg]) (by rw [h, zero_add]) X
 #align category_theory.shift_shift_functor_comp_iso_id_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_hom_app
+-/
 
+#print CategoryTheory.shift_shiftFunctorCompIsoId_inv_app /-
 theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
     (shiftFunctorCompIsoId C n m h).inv.app X⟦n⟧' =
       (shiftFunctorCompIsoId C m n (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg])).inv.app
@@ -557,30 +640,39 @@ theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
     iso.inv_hom_id_app, Functor.map_id, shift_shift_functor_comp_iso_id_hom_app, iso.inv_hom_id_app]
   rfl
 #align category_theory.shift_shift_functor_comp_iso_id_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_inv_app
+-/
 
+#print CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app /-
 theorem shift_shiftFunctorCompIsoId_add_neg_self_hom_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).Hom.app X⟦n⟧' =
       (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).Hom.app (X⟦n⟧) :=
   by apply shift_shift_functor_comp_iso_id_hom_app
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app
+-/
 
+#print CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app /-
 theorem shift_shiftFunctorCompIsoId_add_neg_self_inv_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app X⟦n⟧' =
       (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app (X⟦n⟧) :=
   by apply shift_shift_functor_comp_iso_id_inv_app
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app
+-/
 
+#print CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app /-
 theorem shift_shiftFunctorCompIsoId_neg_add_self_hom_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).Hom.app X⟦-n⟧' =
       (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).Hom.app (X⟦-n⟧) :=
   by apply shift_shift_functor_comp_iso_id_hom_app
 #align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app
+-/
 
+#print CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_app /-
 theorem shift_shiftFunctorCompIsoId_neg_add_self_inv_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app X⟦-n⟧' =
       (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app (X⟦-n⟧) :=
   by apply shift_shift_functor_comp_iso_id_inv_app
 #align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_app
+-/
 
 end
 
@@ -590,9 +682,11 @@ open CategoryTheory.Limits
 
 variable [HasZeroMorphisms C]
 
+#print CategoryTheory.shift_zero_eq_zero /-
 theorem shift_zero_eq_zero (X Y : C) (n : A) : (0 : X ⟶ Y)⟦n⟧' = (0 : X⟦n⟧ ⟶ Y⟦n⟧) :=
   CategoryTheory.Functor.map_zero _ _ _
 #align category_theory.shift_zero_eq_zero CategoryTheory.shift_zero_eq_zero
+-/
 
 end AddGroup
 
@@ -608,6 +702,7 @@ def shiftFunctorComm (i j : A) :
 #align category_theory.shift_functor_comm CategoryTheory.shiftFunctorComm
 -/
 
+#print CategoryTheory.shiftFunctorComm_eq /-
 theorem shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
     shiftFunctorComm C i j =
       (shiftFunctorAdd' C i j k h).symm ≪≫ shiftFunctorAdd' C j i k (by rw [add_comm j i, h]) :=
@@ -616,7 +711,9 @@ theorem shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
   rw [shift_functor_add'_eq_shift_functor_add]
   rfl
 #align category_theory.shift_functor_comm_eq CategoryTheory.shiftFunctorComm_eq
+-/
 
+#print CategoryTheory.shiftFunctorComm_symm /-
 theorem shiftFunctorComm_symm (i j : A) : (shiftFunctorComm C i j).symm = shiftFunctorComm C j i :=
   by
   ext1
@@ -624,23 +721,29 @@ theorem shiftFunctorComm_symm (i j : A) : (shiftFunctorComm C i j).symm = shiftF
   simpa only [shift_functor_comm_eq C i j (i + j) rfl,
     shift_functor_comm_eq C j i (i + j) (add_comm j i)]
 #align category_theory.shift_functor_comm_symm CategoryTheory.shiftFunctorComm_symm
+-/
 
 variable {C} (X Y : C) (f : X ⟶ Y)
 
+#print CategoryTheory.shiftComm /-
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
 abbrev shiftComm (i j : A) : X⟦i⟧⟦j⟧ ≅ X⟦j⟧⟦i⟧ :=
   (shiftFunctorComm C i j).app X
 #align category_theory.shift_comm CategoryTheory.shiftComm
+-/
 
+#print CategoryTheory.shiftComm_symm /-
 @[simp]
 theorem shiftComm_symm (i j : A) : (shiftComm X i j).symm = shiftComm X j i :=
   by
   ext1
   exact nat_trans.congr_app (congr_arg iso.hom (shift_functor_comm_symm C i j)) X
 #align category_theory.shift_comm_symm CategoryTheory.shiftComm_symm
+-/
 
 variable {X Y}
 
+#print CategoryTheory.shiftComm' /-
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
 theorem shiftComm' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftComm _ _ _).Hom ≫ f⟦j⟧'⟦i⟧' ≫ (shiftComm _ _ _).Hom :=
@@ -649,13 +752,17 @@ theorem shiftComm' (i j : A) :
     iso.hom_inv_id_app, category.comp_id]
   rfl
 #align category_theory.shift_comm' CategoryTheory.shiftComm'
+-/
 
+#print CategoryTheory.shiftComm_hom_comp /-
 @[reassoc]
 theorem shiftComm_hom_comp (i j : A) :
     (shiftComm X i j).Hom ≫ f⟦j⟧'⟦i⟧' = f⟦i⟧'⟦j⟧' ≫ (shiftComm Y i j).Hom := by
   rw [shift_comm', ← shift_comm_symm, iso.symm_hom, iso.inv_hom_id_assoc]
 #align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_comp
+-/
 
+#print CategoryTheory.shiftFunctorZero_hom_app_shift /-
 theorem shiftFunctorZero_hom_app_shift (n : A) :
     (shiftFunctorZero C A).Hom.app (X⟦n⟧) =
       (shiftFunctorComm C n 0).Hom.app X ≫ (shiftFunctorZero C A).Hom.app X⟦n⟧' :=
@@ -664,7 +771,9 @@ theorem shiftFunctorZero_hom_app_shift (n : A) :
   dsimp
   rw [category.assoc, iso.hom_inv_id_app, category.comp_id, shift_functor_add'_add_zero_inv_app]
 #align category_theory.shift_functor_zero_hom_app_shift CategoryTheory.shiftFunctorZero_hom_app_shift
+-/
 
+#print CategoryTheory.shiftFunctorZero_inv_app_shift /-
 theorem shiftFunctorZero_inv_app_shift (n : A) :
     (shiftFunctorZero C A).inv.app (X⟦n⟧) =
       (shiftFunctorZero C A).inv.app X⟦n⟧' ≫ (shiftFunctorComm C n 0).inv.app X :=
@@ -675,7 +784,9 @@ theorem shiftFunctorZero_inv_app_shift (n : A) :
   dsimp
   rw [Functor.map_id]
 #align category_theory.shift_functor_zero_inv_app_shift CategoryTheory.shiftFunctorZero_inv_app_shift
+-/
 
+#print CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app /-
 @[reassoc]
 theorem shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m₃ : A) (X : C) :
     (shiftFunctorComm C m₁ (m₂ + m₃)).Hom.app X ≫ (shiftFunctorAdd C m₂ m₃).Hom.app X⟦m₁⟧' =
@@ -699,6 +810,7 @@ theorem shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m
     shift_functor_add'_assoc_hom_app m₁ m₂ m₃ (m₁ + m₂) (m₂ + m₃) (m₁ + (m₂ + m₃)) rfl rfl
       (add_assoc _ _ _) X]
 #align category_theory.shift_functor_comm_hom_app_comp_shift_shift_functor_add_hom_app CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app
+-/
 
 end AddCommMonoid
 
@@ -710,8 +822,7 @@ section
 
 variable (s : A → C ⥤ C) (i : ∀ i, s i ⋙ F ≅ F ⋙ shiftFunctor D i)
 
-include F s i
-
+#print CategoryTheory.hasShiftOfFullyFaithful_zero /-
 /-- auxiliary definition for `has_shift_of_fully_faithful` -/
 def hasShiftOfFullyFaithful_zero : s 0 ≅ 𝟭 C :=
   natIsoOfCompFullyFaithful F
@@ -719,21 +830,27 @@ def hasShiftOfFullyFaithful_zero : s 0 ≅ 𝟭 C :=
       isoWhiskerLeft F (shiftFunctorZero D A) ≪≫
         Functor.rightUnitor _ ≪≫ (Functor.leftUnitor _).symm)
 #align category_theory.has_shift_of_fully_faithful_zero CategoryTheory.hasShiftOfFullyFaithful_zero
+-/
 
+#print CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app /-
 @[simp]
 theorem map_hasShiftOfFullyFaithful_zero_hom_app (X : C) :
     F.map ((hasShiftOfFullyFaithful_zero F s i).Hom.app X) =
       (i 0).Hom.app X ≫ (shiftFunctorZero D A).Hom.app (F.obj X) :=
   by dsimp [has_shift_of_fully_faithful_zero]; simp
 #align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app
+-/
 
+#print CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app /-
 @[simp]
 theorem map_hasShiftOfFullyFaithful_zero_inv_app (X : C) :
     F.map ((hasShiftOfFullyFaithful_zero F s i).inv.app X) =
       (shiftFunctorZero D A).inv.app (F.obj X) ≫ (i 0).inv.app X :=
   by dsimp [has_shift_of_fully_faithful_zero]; simp
 #align category_theory.map_has_shift_of_fully_faithful_zero_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app
+-/
 
+#print CategoryTheory.hasShiftOfFullyFaithful_add /-
 /-- auxiliary definition for `has_shift_of_fully_faithful` -/
 def hasShiftOfFullyFaithful_add (a b : A) : s (a + b) ≅ s a ⋙ s b :=
   natIsoOfCompFullyFaithful F
@@ -744,7 +861,9 @@ def hasShiftOfFullyFaithful_add (a b : A) : s (a + b) ≅ s a ⋙ s b :=
             Functor.associator _ _ _ ≪≫
               isoWhiskerLeft _ (i b).symm ≪≫ (Functor.associator _ _ _).symm)
 #align category_theory.has_shift_of_fully_faithful_add CategoryTheory.hasShiftOfFullyFaithful_add
+-/
 
+#print CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app /-
 @[simp]
 theorem map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
     F.map ((hasShiftOfFullyFaithful_add F s i a b).Hom.app X) =
@@ -753,7 +872,9 @@ theorem map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
           (i a).inv.app X⟦b⟧' ≫ (i b).inv.app ((s a).obj X) :=
   by dsimp [has_shift_of_fully_faithful_add]; simp
 #align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app
+-/
 
+#print CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app /-
 @[simp]
 theorem map_hasShiftOfFullyFaithful_add_inv_app (a b : A) (X : C) :
     F.map ((hasShiftOfFullyFaithful_add F s i a b).inv.app X) =
@@ -761,6 +882,7 @@ theorem map_hasShiftOfFullyFaithful_add_inv_app (a b : A) (X : C) :
         (i a).Hom.app X⟦b⟧' ≫ (shiftFunctorAdd D a b).inv.app (F.obj X) ≫ (i (a + b)).inv.app X :=
   by dsimp [has_shift_of_fully_faithful_add]; simp
 #align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app
+-/
 
 #print CategoryTheory.hasShiftOfFullyFaithful /-
 /-- Given a family of endomorphisms of `C` which are interwined by a fully faithful `F : C ⥤ D`
Diff
@@ -318,8 +318,8 @@ theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
   by
   have := nat_trans.congr_app (congr_arg iso.inv (shift_functor_add'_zero_add C a)) X
   simp only [iso.trans_inv, iso_whisker_right_inv, iso.symm_inv, nat_trans.comp_app,
-    whisker_right_app, functor.left_unitor_hom_app] at this
-  dsimp at this
+    whisker_right_app, functor.left_unitor_hom_app] at this 
+  dsimp at this 
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_app
 
@@ -351,8 +351,8 @@ theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
   by
   have := nat_trans.congr_app (congr_arg iso.inv (shift_functor_add'_add_zero C a)) X
   simp only [iso.trans_inv, iso_whisker_left_inv, iso.symm_inv, nat_trans.comp_app,
-    whisker_left_app, functor.right_unitor_hom_app] at this
-  dsimp at this
+    whisker_left_app, functor.right_unitor_hom_app] at this 
+  dsimp at this 
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_app
 
@@ -778,7 +778,7 @@ def hasShiftOfFullyFaithful : HasShift C A :=
               category.assoc, iso.inv_hom_id_app_assoc, iso.inv_hom_id_app]
             erw [(i m₃).Hom.naturality]
             have := dcongr_arg (fun a => (i a).Hom.app X) (add_assoc m₁ m₂ m₃)
-            dsimp at this
+            dsimp at this 
             dsimp
             rw [iso.inv_hom_id_app_assoc, map_has_shift_of_fully_faithful_add_hom_app, this,
               eq_to_hom_map, category.comp_id, ← functor.map_comp, category.assoc,
@@ -791,7 +791,7 @@ def hasShiftOfFullyFaithful : HasShift C A :=
         F.map_injective
           (by
             have := dcongr_arg (fun a => (i a).Hom.app X) (zero_add n)
-            dsimp at this
+            dsimp at this 
             rw [← cancel_mono ((i n).Hom.app ((s 0).obj X))]
             simp only [this, map_has_shift_of_fully_faithful_add_hom_app,
               shift_functor_add_zero_add_hom_app, eq_to_hom_map, category.assoc,
@@ -804,9 +804,9 @@ def hasShiftOfFullyFaithful : HasShift C A :=
         F.map_injective
           (by
             have := dcongr_arg (fun a => (i a).Hom.app X) (add_zero n)
-            dsimp at this
+            dsimp at this 
             simpa [this, ← nat_trans.naturality_assoc, eq_to_hom_map,
-              shift_functor_add_add_zero_hom_app] ) }
+              shift_functor_add_add_zero_hom_app]) }
 #align category_theory.has_shift_of_fully_faithful CategoryTheory.hasShiftOfFullyFaithful
 -/
 
Diff
@@ -93,9 +93,6 @@ variable {C A}
 
 attribute [reassoc] assoc_hom_app
 
-/- warning: category_theory.shift_mk_core.assoc_inv_app -> CategoryTheory.ShiftMkCore.assoc_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.assoc_inv_app CategoryTheory.ShiftMkCore.assoc_inv_appₓ'. -/
 @[reassoc]
 theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
     (h.f m₃).map ((h.add m₁ m₂).inv.app X) ≫ (h.add (m₁ + m₂) m₃).inv.app X =
@@ -109,9 +106,6 @@ theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
   rfl
 #align category_theory.shift_mk_core.assoc_inv_app CategoryTheory.ShiftMkCore.assoc_inv_app
 
-/- warning: category_theory.shift_mk_core.zero_add_inv_app -> CategoryTheory.ShiftMkCore.zero_add_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.zero_add_inv_app CategoryTheory.ShiftMkCore.zero_add_inv_appₓ'. -/
 theorem zero_add_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     (h.add 0 n).inv.app X = (h.f n).map (h.zero.Hom.app X) ≫ eqToHom (by dsimp <;> rw [zero_add]) :=
   by
@@ -120,9 +114,6 @@ theorem zero_add_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     eq_to_hom_refl]
 #align category_theory.shift_mk_core.zero_add_inv_app CategoryTheory.ShiftMkCore.zero_add_inv_app
 
-/- warning: category_theory.shift_mk_core.add_zero_inv_app -> CategoryTheory.ShiftMkCore.add_zero_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.add_zero_inv_app CategoryTheory.ShiftMkCore.add_zero_inv_appₓ'. -/
 theorem add_zero_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     (h.add n 0).inv.app X = h.zero.Hom.app ((h.f n).obj X) ≫ eqToHom (by dsimp <;> rw [add_zero]) :=
   by
@@ -175,12 +166,6 @@ section
 
 variable [HasShift C A]
 
-/- warning: category_theory.shift_monoidal_functor -> CategoryTheory.shiftMonoidalFunctor is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2], CategoryTheory.MonoidalFunctor.{u3, max u2 u1, u3, max u1 u2} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (Discrete.addMonoidal.{u3} A _inst_2) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u1, u2} C _inst_1)
-but is expected to have type
-  forall (C : Type.{u2}) (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2], CategoryTheory.MonoidalFunctor.{u3, max u2 u1, u3, max u2 u1} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (CategoryTheory.Discrete.addMonoidal.{u3} A _inst_2) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u1, u2} C _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_monoidal_functor CategoryTheory.shiftMonoidalFunctorₓ'. -/
 /-- The monoidal functor from `A` to `C ⥤ C` given a `has_shift` instance. -/
 def shiftMonoidalFunctor : MonoidalFunctor (Discrete A) (C ⥤ C) :=
   HasShift.shift
@@ -195,47 +180,23 @@ def shiftFunctor (i : A) : C ⥤ C :=
 #align category_theory.shift_functor CategoryTheory.shiftFunctor
 -/
 
-/- warning: category_theory.shift_functor_add -> CategoryTheory.shiftFunctorAdd is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j))
-but is expected to have type
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add CategoryTheory.shiftFunctorAddₓ'. -/
 /-- Shifting by `i + j` is the same as shifting by `i` and then shifting by `j`. -/
 def shiftFunctorAdd (i j : A) : shiftFunctor C (i + j) ≅ shiftFunctor C i ⋙ shiftFunctor C j :=
   ((shiftMonoidalFunctor C A).μIso ⟨i⟩ ⟨j⟩).symm
 #align category_theory.shift_functor_add CategoryTheory.shiftFunctorAdd
 
-/- warning: category_theory.shift_functor_add' -> CategoryTheory.shiftFunctorAdd' is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A) (k : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) k) -> (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 k) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)))
-but is expected to have type
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A) (k : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) k) -> (CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 k) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add' CategoryTheory.shiftFunctorAdd'ₓ'. -/
 /-- When `k = i + j`, shifting by `k` is the same as shifting by `i` and then shifting by `j`. -/
 def shiftFunctorAdd' (i j k : A) (h : i + j = k) :
     shiftFunctor C k ≅ shiftFunctor C i ⋙ shiftFunctor C j :=
   eqToIso (by rw [h]) ≪≫ shiftFunctorAdd C i j
 #align category_theory.shift_functor_add' CategoryTheory.shiftFunctorAdd'
 
-/- warning: category_theory.shift_functor_add'_eq_shift_functor_add -> CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAdd is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i j (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) (rfl.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i j)
-but is expected to have type
-  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (i : A) (j : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j) (rfl.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_eq_shift_functor_add CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAddₓ'. -/
 theorem shiftFunctorAdd'_eq_shiftFunctorAdd (i j : A) :
     shiftFunctorAdd' C i j (i + j) rfl = shiftFunctorAdd C i j := by ext1; apply category.id_comp
 #align category_theory.shift_functor_add'_eq_shift_functor_add CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAdd
 
 variable (A)
 
-/- warning: category_theory.shift_functor_zero -> CategoryTheory.shiftFunctorZero is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2], CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)
-but is expected to have type
-  forall (C : Type.{u2}) (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A _inst_2)))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_zero CategoryTheory.shiftFunctorZeroₓ'. -/
 /-- Shifting by zero is the identity functor. -/
 def shiftFunctorZero : shiftFunctor C (0 : A) ≅ 𝟭 C :=
   (shiftMonoidalFunctor C A).εIso.symm
@@ -245,23 +206,11 @@ end
 
 variable {C A}
 
-/- warning: category_theory.shift_mk_core.shift_functor_eq -> CategoryTheory.ShiftMkCore.shiftFunctor_eq is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (a : A), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) a) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h a)
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (a : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) a) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h a)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.shift_functor_eq CategoryTheory.ShiftMkCore.shiftFunctor_eqₓ'. -/
 theorem ShiftMkCore.shiftFunctor_eq (h : ShiftMkCore C A) (a : A) :
     @shiftFunctor _ _ _ _ (hasShiftMk C A h) a = h.f a :=
   Functor.ext (by tidy) (by tidy)
 #align category_theory.shift_mk_core.shift_functor_eq CategoryTheory.ShiftMkCore.shiftFunctor_eq
 
-/- warning: category_theory.shift_mk_core.shift_functor_zero_eq -> CategoryTheory.ShiftMkCore.shiftFunctorZero_eq is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h)) (CategoryTheory.ShiftMkCore.zero.{u1, u2, u3} C A _inst_1 _inst_2 h)
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h)) (CategoryTheory.ShiftMkCore.zero.{u2, u3, u1} C A _inst_1 _inst_2 h)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.shift_functor_zero_eq CategoryTheory.ShiftMkCore.shiftFunctorZero_eqₓ'. -/
 theorem ShiftMkCore.shiftFunctorZero_eq (h : ShiftMkCore C A) :
     @shiftFunctorZero _ _ _ _ (hasShiftMk C A h) = h.zero :=
   by
@@ -274,12 +223,6 @@ theorem ShiftMkCore.shiftFunctorZero_eq (h : ShiftMkCore C A) :
   rfl
 #align category_theory.shift_mk_core.shift_functor_zero_eq CategoryTheory.ShiftMkCore.shiftFunctorZero_eq
 
-/- warning: category_theory.shift_mk_core.shift_functor_add_eq -> CategoryTheory.ShiftMkCore.shiftFunctorAdd_eq is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (a : A) (b : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) b))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) a b) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h a b)
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (a : A) (b : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a b)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) b))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) a b) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h a b)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.shift_functor_add_eq CategoryTheory.ShiftMkCore.shiftFunctorAdd_eqₓ'. -/
 theorem ShiftMkCore.shiftFunctorAdd_eq (h : ShiftMkCore C A) (a b : A) :
     @shiftFunctorAdd _ _ _ _ (hasShiftMk C A h) a b = h.add a b :=
   by
@@ -305,12 +248,6 @@ variable [HasShift C A]
 
 attribute [local reducible] endofunctor_monoidal_category Discrete.addMonoidal
 
-/- warning: category_theory.shift_functor_add'_zero_add -> CategoryTheory.shiftFunctorAdd'_zero_add is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a)) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.leftUnitor.{u2, u1, u2, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.isoWhiskerRight.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)))
-but is expected to have type
-  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a)) (CategoryTheory.Iso.trans.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.symm.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.leftUnitor.{u3, u2, u3, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.isoWhiskerRight.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.symm.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_zero_add CategoryTheory.shiftFunctorAdd'_zero_addₓ'. -/
 theorem shiftFunctorAdd'_zero_add (a : A) :
     shiftFunctorAdd' C 0 a a (zero_add a) =
       (Functor.leftUnitor _).symm ≪≫
@@ -322,12 +259,6 @@ theorem shiftFunctorAdd'_zero_add (a : A) :
   simpa [eq_to_hom_map]
 #align category_theory.shift_functor_add'_zero_add CategoryTheory.shiftFunctorAdd'_zero_add
 
-/- warning: category_theory.shift_functor_add'_add_zero -> CategoryTheory.shiftFunctorAdd'_add_zero is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a)) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.rightUnitor.{u2, u1, u2, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.isoWhiskerLeft.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3))))
-but is expected to have type
-  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a)) (CategoryTheory.Iso.trans.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.symm.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.rightUnitor.{u3, u2, u3, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.isoWhiskerLeft.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.symm.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3))))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_add_zero CategoryTheory.shiftFunctorAdd'_add_zeroₓ'. -/
 theorem shiftFunctorAdd'_add_zero (a : A) :
     shiftFunctorAdd' C a 0 a (add_zero a) =
       (Functor.rightUnitor _).symm ≪≫
@@ -339,9 +270,6 @@ theorem shiftFunctorAdd'_add_zero (a : A) :
   simpa [eq_to_hom_map]
 #align category_theory.shift_functor_add'_add_zero CategoryTheory.shiftFunctorAdd'_add_zero
 
-/- warning: category_theory.shift_functor_add'_assoc -> CategoryTheory.shiftFunctorAdd'_assoc is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc CategoryTheory.shiftFunctorAdd'_assocₓ'. -/
 theorem shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) :
     shiftFunctorAdd' C a₁₂ a₃ a₁₂₃ (by rw [← h₁₂, h₁₂₃]) ≪≫
@@ -357,9 +285,6 @@ theorem shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (
   simp [obj_μ_inv_app, eq_to_hom_map]
 #align category_theory.shift_functor_add'_assoc CategoryTheory.shiftFunctorAdd'_assoc
 
-/- warning: category_theory.shift_functor_add_assoc -> CategoryTheory.shiftFunctorAdd_assoc is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc CategoryTheory.shiftFunctorAdd_assocₓ'. -/
 theorem shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
     shiftFunctorAdd C (a₁ + a₂) a₃ ≪≫
         isoWhiskerRight (shiftFunctorAdd C a₁ a₂) _ ≪≫ Functor.associator _ _ _ =
@@ -374,20 +299,11 @@ theorem shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
 
 variable {C}
 
-/- warning: category_theory.shift_functor_add'_zero_add_hom_app -> CategoryTheory.shiftFunctorAdd'_zero_add_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_zero_add_hom_app CategoryTheory.shiftFunctorAdd'_zero_add_hom_appₓ'. -/
 theorem shiftFunctorAdd'_zero_add_hom_app (a : A) (X : C) :
     (shiftFunctorAdd' C 0 a a (zero_add a)).Hom.app X = (shiftFunctorZero C A).inv.app X⟦a⟧' := by
   simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_zero_add C a)) X
 #align category_theory.shift_functor_add'_zero_add_hom_app CategoryTheory.shiftFunctorAdd'_zero_add_hom_app
 
-/- warning: category_theory.shift_functor_add_zero_add_hom_app -> CategoryTheory.shiftFunctorAdd_zero_add_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_zero_add_hom_app CategoryTheory.shiftFunctorAdd_zero_add_hom_appₓ'. -/
 theorem shiftFunctorAdd_zero_add_hom_app (a : A) (X : C) :
     (shiftFunctorAdd C 0 a).Hom.app X =
       eqToHom (by dsimp <;> rw [zero_add]) ≫ (shiftFunctorZero C A).inv.app X⟦a⟧' :=
@@ -397,12 +313,6 @@ theorem shiftFunctorAdd_zero_add_hom_app (a : A) (X : C) :
   simp
 #align category_theory.shift_functor_add_zero_add_hom_app CategoryTheory.shiftFunctorAdd_zero_add_hom_app
 
-/- warning: category_theory.shift_functor_add'_zero_add_inv_app -> CategoryTheory.shiftFunctorAdd'_zero_add_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_appₓ'. -/
 theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
     (shiftFunctorAdd' C 0 a a (zero_add a)).inv.app X = (shiftFunctorZero C A).Hom.app X⟦a⟧' :=
   by
@@ -413,9 +323,6 @@ theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_app
 
-/- warning: category_theory.shift_functor_add_zero_add_inv_app -> CategoryTheory.shiftFunctorAdd_zero_add_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_zero_add_inv_app CategoryTheory.shiftFunctorAdd_zero_add_inv_appₓ'. -/
 theorem shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
     (shiftFunctorAdd C 0 a).inv.app X =
       (shiftFunctorZero C A).Hom.app X⟦a⟧' ≫ eqToHom (by dsimp <;> rw [zero_add]) :=
@@ -425,20 +332,11 @@ theorem shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
   simp
 #align category_theory.shift_functor_add_zero_add_inv_app CategoryTheory.shiftFunctorAdd_zero_add_inv_app
 
-/- warning: category_theory.shift_functor_add'_add_zero_hom_app -> CategoryTheory.shiftFunctorAdd'_add_zero_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_add_zero_hom_app CategoryTheory.shiftFunctorAdd'_add_zero_hom_appₓ'. -/
 theorem shiftFunctorAdd'_add_zero_hom_app (a : A) (X : C) :
     (shiftFunctorAdd' C a 0 a (add_zero a)).Hom.app X = (shiftFunctorZero C A).inv.app (X⟦a⟧) := by
   simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_add_zero C a)) X
 #align category_theory.shift_functor_add'_add_zero_hom_app CategoryTheory.shiftFunctorAdd'_add_zero_hom_app
 
-/- warning: category_theory.shift_functor_add_add_zero_hom_app -> CategoryTheory.shiftFunctorAdd_add_zero_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_add_zero_hom_app CategoryTheory.shiftFunctorAdd_add_zero_hom_appₓ'. -/
 theorem shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
     (shiftFunctorAdd C a 0).Hom.app X =
       eqToHom (by dsimp <;> rw [add_zero]) ≫ (shiftFunctorZero C A).inv.app (X⟦a⟧) :=
@@ -448,12 +346,6 @@ theorem shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
   simp
 #align category_theory.shift_functor_add_add_zero_hom_app CategoryTheory.shiftFunctorAdd_add_zero_hom_app
 
-/- warning: category_theory.shift_functor_add'_add_zero_inv_app -> CategoryTheory.shiftFunctorAdd'_add_zero_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_appₓ'. -/
 theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
     (shiftFunctorAdd' C a 0 a (add_zero a)).inv.app X = (shiftFunctorZero C A).Hom.app (X⟦a⟧) :=
   by
@@ -464,9 +356,6 @@ theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_app
 
-/- warning: category_theory.shift_functor_add_add_zero_inv_app -> CategoryTheory.shiftFunctorAdd_add_zero_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_add_zero_inv_app CategoryTheory.shiftFunctorAdd_add_zero_inv_appₓ'. -/
 theorem shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
     (shiftFunctorAdd C a 0).inv.app X =
       (shiftFunctorZero C A).Hom.app (X⟦a⟧) ≫ eqToHom (by dsimp <;> rw [add_zero]) :=
@@ -476,9 +365,6 @@ theorem shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
   simp
 #align category_theory.shift_functor_add_add_zero_inv_app CategoryTheory.shiftFunctorAdd_add_zero_inv_app
 
-/- warning: category_theory.shift_functor_add'_assoc_hom_app -> CategoryTheory.shiftFunctorAdd'_assoc_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc_hom_app CategoryTheory.shiftFunctorAdd'_assoc_hom_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) (X : C) :
@@ -491,9 +377,6 @@ theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂
     nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_assoc C _ _ _ _ _ _ h₁₂ h₂₃ h₁₂₃)) X
 #align category_theory.shift_functor_add'_assoc_hom_app CategoryTheory.shiftFunctorAdd'_assoc_hom_app
 
-/- warning: category_theory.shift_functor_add'_assoc_inv_app -> CategoryTheory.shiftFunctorAdd'_assoc_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc_inv_app CategoryTheory.shiftFunctorAdd'_assoc_inv_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) (X : C) :
@@ -506,9 +389,6 @@ theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂
     nat_trans.congr_app (congr_arg iso.inv (shift_functor_add'_assoc C _ _ _ _ _ _ h₁₂ h₂₃ h₁₂₃)) X
 #align category_theory.shift_functor_add'_assoc_inv_app CategoryTheory.shiftFunctorAdd'_assoc_inv_app
 
-/- warning: category_theory.shift_functor_add_assoc_hom_app -> CategoryTheory.shiftFunctorAdd_assoc_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc_hom_app CategoryTheory.shiftFunctorAdd_assoc_hom_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
     (shiftFunctorAdd C (a₁ + a₂) a₃).Hom.app X ≫ (shiftFunctorAdd C a₁ a₂).Hom.app X⟦a₃⟧' =
@@ -517,9 +397,6 @@ theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
   by simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add_assoc C a₁ a₂ a₃)) X
 #align category_theory.shift_functor_add_assoc_hom_app CategoryTheory.shiftFunctorAdd_assoc_hom_app
 
-/- warning: category_theory.shift_functor_add_assoc_inv_app -> CategoryTheory.shiftFunctorAdd_assoc_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc_inv_app CategoryTheory.shiftFunctorAdd_assoc_inv_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorAdd_assoc_inv_app (a₁ a₂ a₃ : A) (X : C) :
     (shiftFunctorAdd C a₁ a₂).inv.app X⟦a₃⟧' ≫ (shiftFunctorAdd C (a₁ + a₂) a₃).inv.app X =
@@ -534,31 +411,16 @@ section AddMonoid
 
 variable {C A} [AddMonoid A] [HasShift C A] (X Y : C) (f : X ⟶ Y)
 
-/- warning: category_theory.has_shift.shift_obj_obj -> CategoryTheory.HasShift.shift_obj_obj is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (n : A) (X : C), Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.obj.{u3, max u2 u1, u3, max u1 u2} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u3, max u2 u1, u3, max u1 u2} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (Discrete.addMonoidal.{u3} A _inst_2) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u1, u2} C _inst_1) (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u3, max u2 u1, u3, max u1 u2} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (Discrete.addMonoidal.{u3} A _inst_2) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u1, u2} C _inst_1) (CategoryTheory.HasShift.shift.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3))) (CategoryTheory.Discrete.mk.{u3} A n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 n) X)
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (n : A) (X : C), Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (Prefunctor.obj.{succ u1, max (succ u3) (succ u2), u1, max u3 u2} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.discreteCategory.{u1} A))) (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, max u3 u2, u1, max u3 u2} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.discreteCategory.{u1} A) (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, max u3 u2, u1, max u3 u2} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.discreteCategory.{u1} A) (CategoryTheory.Discrete.addMonoidal.{u1} A _inst_2) (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u2, u3} C _inst_1) (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, max u3 u2, u1, max u3 u2} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.discreteCategory.{u1} A) (CategoryTheory.Discrete.addMonoidal.{u1} A _inst_2) (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u2, u3} C _inst_1) (CategoryTheory.HasShift.shift.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)))) (CategoryTheory.Discrete.mk.{u1} A n))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 n)) X)
-Case conversion may be inaccurate. Consider using '#align category_theory.has_shift.shift_obj_obj CategoryTheory.HasShift.shift_obj_objₓ'. -/
 @[simp]
 theorem HasShift.shift_obj_obj (n : A) (X : C) : (HasShift.shift.obj ⟨n⟩).obj X = X⟦n⟧ :=
   rfl
 #align category_theory.has_shift.shift_obj_obj CategoryTheory.HasShift.shift_obj_obj
 
-/- warning: category_theory.shift_add -> CategoryTheory.shiftAdd is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (i : A) (j : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X))
-but is expected to have type
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (i : A) (j : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_add CategoryTheory.shiftAddₓ'. -/
 /-- Shifting by `i + j` is the same as shifting by `i` and then shifting by `j`. -/
 abbrev shiftAdd (i j : A) : X⟦i + j⟧ ≅ X⟦i⟧⟦j⟧ :=
   (shiftFunctorAdd C i j).app _
 #align category_theory.shift_add CategoryTheory.shiftAdd
 
-/- warning: category_theory.shift_shift' -> CategoryTheory.shift_shift' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift' CategoryTheory.shift_shift'ₓ'. -/
 theorem shift_shift' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftAdd X i j).inv ≫ f⟦i + j⟧' ≫ (shiftAdd Y i j).Hom := by symm;
   apply nat_iso.naturality_1
@@ -566,35 +428,17 @@ theorem shift_shift' (i j : A) :
 
 variable (A)
 
-/- warning: category_theory.shift_zero -> CategoryTheory.shiftZero is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X
-but is expected to have type
-  forall {C : Type.{u2}} (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A _inst_2))))) X) X
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero CategoryTheory.shiftZeroₓ'. -/
 /-- Shifting by zero is the identity functor. -/
 abbrev shiftZero : X⟦0⟧ ≅ X :=
   (shiftFunctorZero C A).app _
 #align category_theory.shift_zero CategoryTheory.shiftZero
 
-/- warning: category_theory.shift_zero' -> CategoryTheory.shiftZero' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X Y f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X (CategoryTheory.shiftZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) f (CategoryTheory.Iso.inv.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) Y (CategoryTheory.shiftZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y))))
-but is expected to have type
-  forall {C : Type.{u3}} (A : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X Y f) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) X (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) X (CategoryTheory.shiftZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) X Y (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) f (CategoryTheory.Iso.inv.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) Y (CategoryTheory.shiftZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y))))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero' CategoryTheory.shiftZero'ₓ'. -/
 theorem shiftZero' : f⟦(0 : A)⟧' = (shiftZero A X).Hom ≫ f ≫ (shiftZero A Y).inv := by symm;
   apply nat_iso.naturality_2
 #align category_theory.shift_zero' CategoryTheory.shiftZero'
 
 variable (C) {A}
 
-/- warning: category_theory.shift_functor_comp_iso_id -> CategoryTheory.shiftFunctorCompIsoId is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) -> (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1))
-but is expected to have type
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A _inst_2)))) -> (CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comp_iso_id CategoryTheory.shiftFunctorCompIsoIdₓ'. -/
 /-- When `i + j = 0`, shifting by `i` and by `j` gives the identity functor -/
 def shiftFunctorCompIsoId (i j : A) (h : i + j = 0) : shiftFunctor C i ⋙ shiftFunctor C j ≅ 𝟭 C :=
   (shiftFunctorAdd' C i j 0 h).symm ≪≫ shiftFunctorZero C A
@@ -606,12 +450,6 @@ section AddGroup
 
 variable (C) {A} [AddGroup A] [HasShift C A]
 
-/- warning: category_theory.shift_equiv' -> CategoryTheory.shiftEquiv' is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (i : A) (j : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) i j) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} C _inst_1 C _inst_1)
-but is expected to have type
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (i : A) (j : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) i j) (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (NegZeroClass.toZero.{u3} A (SubNegZeroMonoid.toNegZeroClass.{u3} A (SubtractionMonoid.toSubNegZeroMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))))))) -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} C C _inst_1 _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_equiv' CategoryTheory.shiftEquiv'ₓ'. -/
 /-- shifting by `i` and shifting by `j` forms an equivalence when `i + j = 0`. -/
 @[simps]
 def shiftEquiv' (i j : A) (h : i + j = 0) : C ≌ C
@@ -634,12 +472,6 @@ def shiftEquiv' (i j : A) (h : i + j = 0) : C ≌ C
       simpa only [eq_to_hom_map, category.assoc]
 #align category_theory.shift_equiv' CategoryTheory.shiftEquiv'
 
-/- warning: category_theory.shift_equiv -> CategoryTheory.shiftEquiv is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))], A -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} C _inst_1 C _inst_1)
-but is expected to have type
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))], A -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} C C _inst_1 _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_equiv CategoryTheory.shiftEquivₓ'. -/
 /-- shifting by `n` and shifting by `-n` forms an equivalence. -/
 abbrev shiftEquiv (i : A) : C ≌ C :=
   shiftEquiv' C i (-i) (add_neg_self i)
@@ -651,12 +483,6 @@ variable (X Y : C) (f : X ⟶ Y)
 instance (i : A) : IsEquivalence (shiftFunctor C i) :=
   IsEquivalence.ofEquivalence (shiftEquiv C i)
 
-/- warning: category_theory.shift_functor_inv -> CategoryTheory.shiftFunctor_inv is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (i : A), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.inv.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.isEquivalence.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))
-but is expected to have type
-  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (i : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.inv.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.instIsEquivalenceShiftFunctorToAddMonoidToSubNegMonoid.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_inv CategoryTheory.shiftFunctor_invₓ'. -/
 @[simp]
 theorem shiftFunctor_inv (i : A) : (shiftFunctor C i).inv = shiftFunctor C (-i) :=
   rfl
@@ -677,23 +503,11 @@ end
 
 variable {C}
 
-/- warning: category_theory.shift_shift_neg -> CategoryTheory.shiftShiftNeg is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (X : C) (i : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X)) X
-but is expected to have type
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (X : C) (i : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (NegZeroClass.toNeg.{u3} A (SubNegZeroMonoid.toNegZeroClass.{u3} A (SubtractionMonoid.toSubNegZeroMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2)))) i))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) X)) X
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_neg CategoryTheory.shiftShiftNegₓ'. -/
 /-- Shifting by `i` and then shifting by `-i` is the identity. -/
 abbrev shiftShiftNeg (i : A) : X⟦i⟧⟦-i⟧ ≅ X :=
   (shiftEquiv C i).unitIso.symm.app _
 #align category_theory.shift_shift_neg CategoryTheory.shiftShiftNeg
 
-/- warning: category_theory.shift_neg_shift -> CategoryTheory.shiftNegShift is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (X : C) (i : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X)) X
-but is expected to have type
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (X : C) (i : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (NegZeroClass.toNeg.{u3} A (SubNegZeroMonoid.toNegZeroClass.{u3} A (SubtractionMonoid.toSubNegZeroMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2)))) i))) X)) X
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_neg_shift CategoryTheory.shiftNegShiftₓ'. -/
 /-- Shifting by `-i` and then shifting by `i` is the identity. -/
 abbrev shiftNegShift (i : A) : X⟦-i⟧⟦i⟧ ≅ X :=
   (shiftEquiv C i).counitIso.app _
@@ -701,9 +515,6 @@ abbrev shiftNegShift (i : A) : X⟦-i⟧⟦i⟧ ≅ X :=
 
 variable {X Y}
 
-/- warning: category_theory.shift_shift_neg' -> CategoryTheory.shift_shift_neg' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_neg' CategoryTheory.shift_shift_neg'ₓ'. -/
 theorem shift_shift_neg' (i : A) :
     f⟦i⟧'⟦-i⟧' =
       (shiftFunctorCompIsoId C i (-i) (add_neg_self i)).Hom.app X ≫
@@ -711,9 +522,6 @@ theorem shift_shift_neg' (i : A) :
   (NatIso.naturality_2 (shiftFunctorCompIsoId C i (-i) (add_neg_self i)) f).symm
 #align category_theory.shift_shift_neg' CategoryTheory.shift_shift_neg'
 
-/- warning: category_theory.shift_neg_shift' -> CategoryTheory.shift_neg_shift' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_neg_shift' CategoryTheory.shift_neg_shift'ₓ'. -/
 theorem shift_neg_shift' (i : A) :
     f⟦-i⟧'⟦i⟧' =
       (shiftFunctorCompIsoId C (-i) i (neg_add_self i)).Hom.app X ≫
@@ -721,9 +529,6 @@ theorem shift_neg_shift' (i : A) :
   (NatIso.naturality_2 (shiftFunctorCompIsoId C (-i) i (neg_add_self i)) f).symm
 #align category_theory.shift_neg_shift' CategoryTheory.shift_neg_shift'
 
-/- warning: category_theory.shift_equiv_triangle -> CategoryTheory.shift_equiv_triangle is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_equiv_triangle CategoryTheory.shift_equiv_triangleₓ'. -/
 theorem shift_equiv_triangle (n : A) (X : C) :
     (shiftShiftNeg X n).inv⟦n⟧' ≫ (shiftNegShift (X⟦n⟧) n).Hom = 𝟙 (X⟦n⟧) :=
   (shiftEquiv C n).functor_unitIso_comp X
@@ -731,9 +536,6 @@ theorem shift_equiv_triangle (n : A) (X : C) :
 
 section
 
-/- warning: category_theory.shift_shift_functor_comp_iso_id_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
     (shiftFunctorCompIsoId C n m h).Hom.app X⟦n⟧' =
       (shiftFunctorCompIsoId C m n (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg])).Hom.app
@@ -746,9 +548,6 @@ theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
       (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg]) (by rw [h, zero_add]) X
 #align category_theory.shift_shift_functor_comp_iso_id_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_hom_app
 
-/- warning: category_theory.shift_shift_functor_comp_iso_id_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
     (shiftFunctorCompIsoId C n m h).inv.app X⟦n⟧' =
       (shiftFunctorCompIsoId C m n (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg])).inv.app
@@ -759,36 +558,24 @@ theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
   rfl
 #align category_theory.shift_shift_functor_comp_iso_id_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_inv_app
 
-/- warning: category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_add_neg_self_hom_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).Hom.app X⟦n⟧' =
       (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).Hom.app (X⟦n⟧) :=
   by apply shift_shift_functor_comp_iso_id_hom_app
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app
 
-/- warning: category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_add_neg_self_inv_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app X⟦n⟧' =
       (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app (X⟦n⟧) :=
   by apply shift_shift_functor_comp_iso_id_inv_app
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app
 
-/- warning: category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_neg_add_self_hom_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).Hom.app X⟦-n⟧' =
       (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).Hom.app (X⟦-n⟧) :=
   by apply shift_shift_functor_comp_iso_id_hom_app
 #align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app
 
-/- warning: category_theory.shift_shift_functor_comp_iso_id_neg_add_self_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_neg_add_self_inv_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app X⟦-n⟧' =
       (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app (X⟦-n⟧) :=
@@ -803,12 +590,6 @@ open CategoryTheory.Limits
 
 variable [HasZeroMorphisms C]
 
-/- warning: category_theory.shift_zero_eq_zero -> CategoryTheory.shift_zero_eq_zero is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} C _inst_1] (X : C) (Y : C) (n : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X Y (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 _inst_4 X Y))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 _inst_4 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} C _inst_1] (X : C) (Y : C) (n : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X Y (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u3} C _inst_1 _inst_4 X Y)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) Y)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) Y)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u3} C _inst_1 _inst_4 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) Y))))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero_eq_zero CategoryTheory.shift_zero_eq_zeroₓ'. -/
 theorem shift_zero_eq_zero (X Y : C) (n : A) : (0 : X ⟶ Y)⟦n⟧' = (0 : X⟦n⟧ ⟶ Y⟦n⟧) :=
   CategoryTheory.Functor.map_zero _ _ _
 #align category_theory.shift_zero_eq_zero CategoryTheory.shift_zero_eq_zero
@@ -827,9 +608,6 @@ def shiftFunctorComm (i j : A) :
 #align category_theory.shift_functor_comm CategoryTheory.shiftFunctorComm
 -/
 
-/- warning: category_theory.shift_functor_comm_eq -> CategoryTheory.shiftFunctorComm_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_eq CategoryTheory.shiftFunctorComm_eqₓ'. -/
 theorem shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
     shiftFunctorComm C i j =
       (shiftFunctorAdd' C i j k h).symm ≪≫ shiftFunctorAdd' C j i k (by rw [add_comm j i, h]) :=
@@ -839,12 +617,6 @@ theorem shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
   rfl
 #align category_theory.shift_functor_comm_eq CategoryTheory.shiftFunctorComm_eq
 
-/- warning: category_theory.shift_functor_comm_symm -> CategoryTheory.shiftFunctorComm_symm is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (i : A) (j : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j))) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i j)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j i)
-but is expected to have type
-  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (i : A) (j : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j))) (CategoryTheory.Iso.symm.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j i)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_symm CategoryTheory.shiftFunctorComm_symmₓ'. -/
 theorem shiftFunctorComm_symm (i j : A) : (shiftFunctorComm C i j).symm = shiftFunctorComm C j i :=
   by
   ext1
@@ -855,23 +627,11 @@ theorem shiftFunctorComm_symm (i j : A) : (shiftFunctorComm C i j).symm = shiftF
 
 variable {C} (X Y : C) (f : X ⟶ Y)
 
-/- warning: category_theory.shift_comm -> CategoryTheory.shiftComm is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (X : C) (i : A) (j : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X))
-but is expected to have type
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (X : C) (i : A) (j : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm CategoryTheory.shiftCommₓ'. -/
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
 abbrev shiftComm (i j : A) : X⟦i⟧⟦j⟧ ≅ X⟦j⟧⟦i⟧ :=
   (shiftFunctorComm C i j).app X
 #align category_theory.shift_comm CategoryTheory.shiftComm
 
-/- warning: category_theory.shift_comm_symm -> CategoryTheory.shiftComm_symm is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (X : C) (i : A) (j : A), Eq.{succ u1} (CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X))) (CategoryTheory.Iso.symm.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X j i)
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (X : C) (i : A) (j : A), Eq.{succ u2} (CategoryTheory.Iso.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X))) (CategoryTheory.Iso.symm.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X j i)
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm_symm CategoryTheory.shiftComm_symmₓ'. -/
 @[simp]
 theorem shiftComm_symm (i j : A) : (shiftComm X i j).symm = shiftComm X j i :=
   by
@@ -881,9 +641,6 @@ theorem shiftComm_symm (i j : A) : (shiftComm X i j).symm = shiftComm X j i :=
 
 variable {X Y}
 
-/- warning: category_theory.shift_comm' -> CategoryTheory.shiftComm' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm' CategoryTheory.shiftComm'ₓ'. -/
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
 theorem shiftComm' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftComm _ _ _).Hom ≫ f⟦j⟧'⟦i⟧' ≫ (shiftComm _ _ _).Hom :=
@@ -893,18 +650,12 @@ theorem shiftComm' (i j : A) :
   rfl
 #align category_theory.shift_comm' CategoryTheory.shiftComm'
 
-/- warning: category_theory.shift_comm_hom_comp -> CategoryTheory.shiftComm_hom_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_compₓ'. -/
 @[reassoc]
 theorem shiftComm_hom_comp (i j : A) :
     (shiftComm X i j).Hom ≫ f⟦j⟧'⟦i⟧' = f⟦i⟧'⟦j⟧' ≫ (shiftComm Y i j).Hom := by
   rw [shift_comm', ← shift_comm_symm, iso.symm_hom, iso.inv_hom_id_assoc]
 #align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_comp
 
-/- warning: category_theory.shift_functor_zero_hom_app_shift -> CategoryTheory.shiftFunctorZero_hom_app_shift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_zero_hom_app_shift CategoryTheory.shiftFunctorZero_hom_app_shiftₓ'. -/
 theorem shiftFunctorZero_hom_app_shift (n : A) :
     (shiftFunctorZero C A).Hom.app (X⟦n⟧) =
       (shiftFunctorComm C n 0).Hom.app X ≫ (shiftFunctorZero C A).Hom.app X⟦n⟧' :=
@@ -914,9 +665,6 @@ theorem shiftFunctorZero_hom_app_shift (n : A) :
   rw [category.assoc, iso.hom_inv_id_app, category.comp_id, shift_functor_add'_add_zero_inv_app]
 #align category_theory.shift_functor_zero_hom_app_shift CategoryTheory.shiftFunctorZero_hom_app_shift
 
-/- warning: category_theory.shift_functor_zero_inv_app_shift -> CategoryTheory.shiftFunctorZero_inv_app_shift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_zero_inv_app_shift CategoryTheory.shiftFunctorZero_inv_app_shiftₓ'. -/
 theorem shiftFunctorZero_inv_app_shift (n : A) :
     (shiftFunctorZero C A).inv.app (X⟦n⟧) =
       (shiftFunctorZero C A).inv.app X⟦n⟧' ≫ (shiftFunctorComm C n 0).inv.app X :=
@@ -928,9 +676,6 @@ theorem shiftFunctorZero_inv_app_shift (n : A) :
   rw [Functor.map_id]
 #align category_theory.shift_functor_zero_inv_app_shift CategoryTheory.shiftFunctorZero_inv_app_shift
 
-/- warning: category_theory.shift_functor_comm_hom_app_comp_shift_shift_functor_add_hom_app -> CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_hom_app_comp_shift_shift_functor_add_hom_app CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m₃ : A) (X : C) :
     (shiftFunctorComm C m₁ (m₂ + m₃)).Hom.app X ≫ (shiftFunctorAdd C m₂ m₃).Hom.app X⟦m₁⟧' =
@@ -967,12 +712,6 @@ variable (s : A → C ⥤ C) (i : ∀ i, s i ⋙ F ≅ F ⋙ shiftFunctor D i)
 
 include F s i
 
-/- warning: category_theory.has_shift_of_fully_faithful_zero -> CategoryTheory.hasShiftOfFullyFaithful_zero is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)), (forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) -> (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1))
-but is expected to have type
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)), (forall (i : A), CategoryTheory.Iso.{max u2 u5, max (max (max u4 u2) u5) u1} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) -> (CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A _inst_3)))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1))
-Case conversion may be inaccurate. Consider using '#align category_theory.has_shift_of_fully_faithful_zero CategoryTheory.hasShiftOfFullyFaithful_zeroₓ'. -/
 /-- auxiliary definition for `has_shift_of_fully_faithful` -/
 def hasShiftOfFullyFaithful_zero : s 0 ≅ 𝟭 C :=
   natIsoOfCompFullyFaithful F
@@ -981,9 +720,6 @@ def hasShiftOfFullyFaithful_zero : s 0 ≅ 𝟭 C :=
         Functor.rightUnitor _ ≪≫ (Functor.leftUnitor _).symm)
 #align category_theory.has_shift_of_fully_faithful_zero CategoryTheory.hasShiftOfFullyFaithful_zero
 
-/- warning: category_theory.map_has_shift_of_fully_faithful_zero_hom_app -> CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_appₓ'. -/
 @[simp]
 theorem map_hasShiftOfFullyFaithful_zero_hom_app (X : C) :
     F.map ((hasShiftOfFullyFaithful_zero F s i).Hom.app X) =
@@ -991,9 +727,6 @@ theorem map_hasShiftOfFullyFaithful_zero_hom_app (X : C) :
   by dsimp [has_shift_of_fully_faithful_zero]; simp
 #align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app
 
-/- warning: category_theory.map_has_shift_of_fully_faithful_zero_inv_app -> CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_zero_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_appₓ'. -/
 @[simp]
 theorem map_hasShiftOfFullyFaithful_zero_inv_app (X : C) :
     F.map ((hasShiftOfFullyFaithful_zero F s i).inv.app X) =
@@ -1001,12 +734,6 @@ theorem map_hasShiftOfFullyFaithful_zero_inv_app (X : C) :
   by dsimp [has_shift_of_fully_faithful_zero]; simp
 #align category_theory.map_has_shift_of_fully_faithful_zero_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app
 
-/- warning: category_theory.has_shift_of_fully_faithful_add -> CategoryTheory.hasShiftOfFullyFaithful_add is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)), (forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) -> (forall (a : A) (b : A), CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)))
-but is expected to have type
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)), (forall (i : A), CategoryTheory.Iso.{max u2 u5, max (max (max u4 u2) u5) u1} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) -> (forall (a : A) (b : A), CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)))
-Case conversion may be inaccurate. Consider using '#align category_theory.has_shift_of_fully_faithful_add CategoryTheory.hasShiftOfFullyFaithful_addₓ'. -/
 /-- auxiliary definition for `has_shift_of_fully_faithful` -/
 def hasShiftOfFullyFaithful_add (a b : A) : s (a + b) ≅ s a ⋙ s b :=
   natIsoOfCompFullyFaithful F
@@ -1018,9 +745,6 @@ def hasShiftOfFullyFaithful_add (a b : A) : s (a + b) ≅ s a ⋙ s b :=
               isoWhiskerLeft _ (i b).symm ≪≫ (Functor.associator _ _ _).symm)
 #align category_theory.has_shift_of_fully_faithful_add CategoryTheory.hasShiftOfFullyFaithful_add
 
-/- warning: category_theory.map_has_shift_of_fully_faithful_add_hom_app -> CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_appₓ'. -/
 @[simp]
 theorem map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
     F.map ((hasShiftOfFullyFaithful_add F s i a b).Hom.app X) =
@@ -1030,9 +754,6 @@ theorem map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
   by dsimp [has_shift_of_fully_faithful_add]; simp
 #align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app
 
-/- warning: category_theory.map_has_shift_of_fully_faithful_add_inv_app -> CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_appₓ'. -/
 @[simp]
 theorem map_hasShiftOfFullyFaithful_add_inv_app (a b : A) (X : C) :
     F.map ((hasShiftOfFullyFaithful_add F s i a b).inv.app X) =
Diff
@@ -145,12 +145,8 @@ def hasShiftMk (h : ShiftMkCore C A) : HasShift C A :=
       ε := h.zero.inv
       μ := fun m n => (h.add m.as n.as).inv
       μ_natural' := by
-        rintro ⟨X⟩ ⟨Y⟩ ⟨X'⟩ ⟨Y'⟩ ⟨⟨⟨rfl⟩⟩⟩ ⟨⟨⟨rfl⟩⟩⟩
-        ext
-        dsimp
-        simp only [discrete.functor_map_id, category.assoc]
-        dsimp
-        simp
+        rintro ⟨X⟩ ⟨Y⟩ ⟨X'⟩ ⟨Y'⟩ ⟨⟨⟨rfl⟩⟩⟩ ⟨⟨⟨rfl⟩⟩⟩; ext
+        dsimp; simp only [discrete.functor_map_id, category.assoc]; dsimp; simp
       associativity' := by
         rintro ⟨m₁⟩ ⟨m₂⟩ ⟨m₃⟩
         ext X
@@ -229,10 +225,7 @@ but is expected to have type
   forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (i : A) (j : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j) (rfl.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j)
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_eq_shift_functor_add CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAddₓ'. -/
 theorem shiftFunctorAdd'_eq_shiftFunctorAdd (i j : A) :
-    shiftFunctorAdd' C i j (i + j) rfl = shiftFunctorAdd C i j :=
-  by
-  ext1
-  apply category.id_comp
+    shiftFunctorAdd' C i j (i + j) rfl = shiftFunctorAdd C i j := by ext1; apply category.id_comp
 #align category_theory.shift_functor_add'_eq_shift_functor_add CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAdd
 
 variable (A)
@@ -567,9 +560,7 @@ abbrev shiftAdd (i j : A) : X⟦i + j⟧ ≅ X⟦i⟧⟦j⟧ :=
 <too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift' CategoryTheory.shift_shift'ₓ'. -/
 theorem shift_shift' (i j : A) :
-    f⟦i⟧'⟦j⟧' = (shiftAdd X i j).inv ≫ f⟦i + j⟧' ≫ (shiftAdd Y i j).Hom :=
-  by
-  symm
+    f⟦i⟧'⟦j⟧' = (shiftAdd X i j).inv ≫ f⟦i + j⟧' ≫ (shiftAdd Y i j).Hom := by symm;
   apply nat_iso.naturality_1
 #align category_theory.shift_shift' CategoryTheory.shift_shift'
 
@@ -592,9 +583,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} (A : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X Y f) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) X (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) X (CategoryTheory.shiftZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) X Y (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) f (CategoryTheory.Iso.inv.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) Y (CategoryTheory.shiftZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y))))
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero' CategoryTheory.shiftZero'ₓ'. -/
-theorem shiftZero' : f⟦(0 : A)⟧' = (shiftZero A X).Hom ≫ f ≫ (shiftZero A Y).inv :=
-  by
-  symm
+theorem shiftZero' : f⟦(0 : A)⟧' = (shiftZero A X).Hom ≫ f ≫ (shiftZero A Y).inv := by symm;
   apply nat_iso.naturality_2
 #align category_theory.shift_zero' CategoryTheory.shiftZero'
 
@@ -999,9 +988,7 @@ Case conversion may be inaccurate. Consider using '#align category_theory.map_ha
 theorem map_hasShiftOfFullyFaithful_zero_hom_app (X : C) :
     F.map ((hasShiftOfFullyFaithful_zero F s i).Hom.app X) =
       (i 0).Hom.app X ≫ (shiftFunctorZero D A).Hom.app (F.obj X) :=
-  by
-  dsimp [has_shift_of_fully_faithful_zero]
-  simp
+  by dsimp [has_shift_of_fully_faithful_zero]; simp
 #align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app
 
 /- warning: category_theory.map_has_shift_of_fully_faithful_zero_inv_app -> CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app is a dubious translation:
@@ -1011,9 +998,7 @@ Case conversion may be inaccurate. Consider using '#align category_theory.map_ha
 theorem map_hasShiftOfFullyFaithful_zero_inv_app (X : C) :
     F.map ((hasShiftOfFullyFaithful_zero F s i).inv.app X) =
       (shiftFunctorZero D A).inv.app (F.obj X) ≫ (i 0).inv.app X :=
-  by
-  dsimp [has_shift_of_fully_faithful_zero]
-  simp
+  by dsimp [has_shift_of_fully_faithful_zero]; simp
 #align category_theory.map_has_shift_of_fully_faithful_zero_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app
 
 /- warning: category_theory.has_shift_of_fully_faithful_add -> CategoryTheory.hasShiftOfFullyFaithful_add is a dubious translation:
@@ -1042,9 +1027,7 @@ theorem map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
       (i (a + b)).Hom.app X ≫
         (shiftFunctorAdd D a b).Hom.app (F.obj X) ≫
           (i a).inv.app X⟦b⟧' ≫ (i b).inv.app ((s a).obj X) :=
-  by
-  dsimp [has_shift_of_fully_faithful_add]
-  simp
+  by dsimp [has_shift_of_fully_faithful_add]; simp
 #align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app
 
 /- warning: category_theory.map_has_shift_of_fully_faithful_add_inv_app -> CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app is a dubious translation:
@@ -1055,9 +1038,7 @@ theorem map_hasShiftOfFullyFaithful_add_inv_app (a b : A) (X : C) :
     F.map ((hasShiftOfFullyFaithful_add F s i a b).inv.app X) =
       (i b).Hom.app ((s a).obj X) ≫
         (i a).Hom.app X⟦b⟧' ≫ (shiftFunctorAdd D a b).inv.app (F.obj X) ≫ (i (a + b)).inv.app X :=
-  by
-  dsimp [has_shift_of_fully_faithful_add]
-  simp
+  by dsimp [has_shift_of_fully_faithful_add]; simp
 #align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app
 
 #print CategoryTheory.hasShiftOfFullyFaithful /-
Diff
@@ -94,10 +94,7 @@ variable {C A}
 attribute [reassoc] assoc_hom_app
 
 /- warning: category_theory.shift_mk_core.assoc_inv_app -> CategoryTheory.ShiftMkCore.assoc_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h m₂ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₂ m₃))) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₂ m₃))) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₁ m₂) m₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₂ m₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) m₁ m₂ m₃))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X))))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₂ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) X) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)))) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)))) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ m₂) m₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) m₁ m₂ m₃))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.assoc_inv_app CategoryTheory.ShiftMkCore.assoc_inv_appₓ'. -/
 @[reassoc]
 theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
@@ -113,10 +110,7 @@ theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
 #align category_theory.shift_mk_core.assoc_inv_app CategoryTheory.ShiftMkCore.assoc_inv_app
 
 /- warning: category_theory.shift_mk_core.zero_add_inv_app -> CategoryTheory.ShiftMkCore.zero_add_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n)) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ShiftMkCore.zero.{u1, u2, u3} C A _inst_1 _inst_2 h)) X)) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X))) n (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) n))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X))))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n)) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.ShiftMkCore.zero.{u2, u3, u1} C A _inst_1 _inst_2 h)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) n) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X))) n (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) n))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.zero_add_inv_app CategoryTheory.ShiftMkCore.zero_add_inv_appₓ'. -/
 theorem zero_add_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     (h.add 0 n).inv.app X = (h.f n).map (h.zero.Hom.app X) ≫ eqToHom (by dsimp <;> rw [zero_add]) :=
@@ -127,10 +121,7 @@ theorem zero_add_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
 #align category_theory.shift_mk_core.zero_add_inv_app CategoryTheory.ShiftMkCore.zero_add_inv_app
 
 /- warning: category_theory.shift_mk_core.add_zero_inv_app -> CategoryTheory.ShiftMkCore.add_zero_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ShiftMkCore.zero.{u1, u2, u3} C A _inst_1 _inst_2 h)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X))) n (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) n))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X))))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.ShiftMkCore.zero.{u2, u3, u1} C A _inst_1 _inst_2 h)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X))) n (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) n))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.add_zero_inv_app CategoryTheory.ShiftMkCore.add_zero_inv_appₓ'. -/
 theorem add_zero_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     (h.add n 0).inv.app X = h.zero.Hom.app ((h.f n).obj X) ≫ eqToHom (by dsimp <;> rw [add_zero]) :=
@@ -356,10 +347,7 @@ theorem shiftFunctorAdd'_add_zero (a : A) :
 #align category_theory.shift_functor_add'_add_zero CategoryTheory.shiftFunctorAdd'_add_zero
 
 /- warning: category_theory.shift_functor_add'_assoc -> CategoryTheory.shiftFunctorAdd'_assoc is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) _a a₃) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.isoWhiskerRight.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.associator.{u2, u1, u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ _a) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃))))) (CategoryTheory.isoWhiskerLeft.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)))
-but is expected to have type
-  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) _a a₃) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.isoWhiskerRight.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.associator.{u3, u2, u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ _a) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃))))) (CategoryTheory.isoWhiskerLeft.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc CategoryTheory.shiftFunctorAdd'_assocₓ'. -/
 theorem shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) :
@@ -377,10 +365,7 @@ theorem shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (
 #align category_theory.shift_functor_add'_assoc CategoryTheory.shiftFunctorAdd'_assoc
 
 /- warning: category_theory.shift_functor_add_assoc -> CategoryTheory.shiftFunctorAdd_assoc is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.isoWhiskerRight.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.associator.{u2, u1, u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃))) (CategoryTheory.isoWhiskerLeft.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃)))
-but is expected to have type
-  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.isoWhiskerRight.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.associator.{u3, u2, u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃))) (CategoryTheory.isoWhiskerLeft.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc CategoryTheory.shiftFunctorAdd_assocₓ'. -/
 theorem shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
     shiftFunctorAdd C (a₁ + a₂) a₃ ≪≫
@@ -408,10 +393,7 @@ theorem shiftFunctorAdd'_zero_add_hom_app (a : A) (X : C) :
 #align category_theory.shift_functor_add'_zero_add_hom_app CategoryTheory.shiftFunctorAdd'_zero_add_hom_app
 
 /- warning: category_theory.shift_functor_add_zero_add_hom_app -> CategoryTheory.shiftFunctorAdd_zero_add_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 _a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) X)))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X))) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 _a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) X)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_zero_add_hom_app CategoryTheory.shiftFunctorAdd_zero_add_hom_appₓ'. -/
 theorem shiftFunctorAdd_zero_add_hom_app (a : A) (X : C) :
     (shiftFunctorAdd C 0 a).Hom.app X =
@@ -439,10 +421,7 @@ theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
 #align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_app
 
 /- warning: category_theory.shift_functor_add_zero_add_inv_app -> CategoryTheory.shiftFunctorAdd_zero_add_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) X)) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X))) a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X))) a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_zero_add_inv_app CategoryTheory.shiftFunctorAdd_zero_add_inv_appₓ'. -/
 theorem shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
     (shiftFunctorAdd C 0 a).inv.app X =
@@ -465,10 +444,7 @@ theorem shiftFunctorAdd'_add_zero_hom_app (a : A) (X : C) :
 #align category_theory.shift_functor_add'_add_zero_hom_app CategoryTheory.shiftFunctorAdd'_add_zero_hom_app
 
 /- warning: category_theory.shift_functor_add_add_zero_hom_app -> CategoryTheory.shiftFunctorAdd_add_zero_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 _a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 _a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))))) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_add_zero_hom_app CategoryTheory.shiftFunctorAdd_add_zero_hom_appₓ'. -/
 theorem shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
     (shiftFunctorAdd C a 0).Hom.app X =
@@ -496,10 +472,7 @@ theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
 #align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_app
 
 /- warning: category_theory.shift_functor_add_add_zero_inv_app -> CategoryTheory.shiftFunctorAdd_add_zero_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_add_zero_inv_app CategoryTheory.shiftFunctorAdd_add_zero_inv_appₓ'. -/
 theorem shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
     (shiftFunctorAdd C a 0).inv.app X =
@@ -511,10 +484,7 @@ theorem shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
 #align category_theory.shift_functor_add_add_zero_inv_app CategoryTheory.shiftFunctorAdd_add_zero_inv_app
 
 /- warning: category_theory.shift_functor_add'_assoc_hom_app -> CategoryTheory.shiftFunctorAdd'_assoc_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) _a a₃) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃))))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ _a) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃)))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) _a a₃) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃))))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ _a) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc_hom_app CategoryTheory.shiftFunctorAdd'_assoc_hom_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
@@ -529,10 +499,7 @@ theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂
 #align category_theory.shift_functor_add'_assoc_hom_app CategoryTheory.shiftFunctorAdd'_assoc_hom_app
 
 /- warning: category_theory.shift_functor_add'_assoc_inv_app -> CategoryTheory.shiftFunctorAdd'_assoc_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) _a a₃) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃))))) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ _a) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃)))))) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) _a a₃) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃))))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ _a) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃)))))) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc_inv_app CategoryTheory.shiftFunctorAdd'_assoc_inv_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
@@ -547,10 +514,7 @@ theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂
 #align category_theory.shift_functor_add'_assoc_inv_app CategoryTheory.shiftFunctorAdd'_assoc_inv_app
 
 /- warning: category_theory.shift_functor_add_assoc_hom_app -> CategoryTheory.shiftFunctorAdd_assoc_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc_hom_app CategoryTheory.shiftFunctorAdd_assoc_hom_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
@@ -561,10 +525,7 @@ theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
 #align category_theory.shift_functor_add_assoc_hom_app CategoryTheory.shiftFunctorAdd_assoc_hom_app
 
 /- warning: category_theory.shift_functor_add_assoc_inv_app -> CategoryTheory.shiftFunctorAdd_assoc_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc_inv_app CategoryTheory.shiftFunctorAdd_assoc_inv_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorAdd_assoc_inv_app (a₁ a₂ a₃ : A) (X : C) :
@@ -603,10 +564,7 @@ abbrev shiftAdd (i j : A) : X⟦i + j⟧ ≅ X⟦i⟧⟦j⟧ :=
 #align category_theory.shift_add CategoryTheory.shiftAdd
 
 /- warning: category_theory.shift_shift' -> CategoryTheory.shift_shift' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y)) (CategoryTheory.Iso.inv.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X)) (CategoryTheory.shiftAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X Y f) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y)) (CategoryTheory.shiftAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y i j))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y)) (CategoryTheory.Iso.inv.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X)) (CategoryTheory.shiftAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) Y) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) X Y f) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) Y) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y)) (CategoryTheory.shiftAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y i j))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift' CategoryTheory.shift_shift'ₓ'. -/
 theorem shift_shift' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftAdd X i j).inv ≫ f⟦i + j⟧' ≫ (shiftAdd Y i j).Hom :=
@@ -755,10 +713,7 @@ abbrev shiftNegShift (i : A) : X⟦-i⟧⟦i⟧ ≅ X :=
 variable {X Y}
 
 /- warning: category_theory.shift_shift_neg' -> CategoryTheory.shift_shift_neg' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) Y)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i) (add_neg_self.{u3} A _inst_2 i))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) Y)) f (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i) (add_neg_self.{u3} A _inst_2 i))) Y)))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)))) Y) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i) (add_neg_self.{u1} A _inst_2 i))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) Y (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)))) Y) f (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i) (add_neg_self.{u1} A _inst_2 i))) Y)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_neg' CategoryTheory.shift_shift_neg'ₓ'. -/
 theorem shift_shift_neg' (i : A) :
     f⟦i⟧'⟦-i⟧' =
@@ -768,10 +723,7 @@ theorem shift_shift_neg' (i : A) :
 #align category_theory.shift_shift_neg' CategoryTheory.shift_shift_neg'
 
 /- warning: category_theory.shift_neg_shift' -> CategoryTheory.shift_neg_shift' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) Y)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i) i (neg_add_self.{u3} A _inst_2 i))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) Y)) f (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i) i (neg_add_self.{u3} A _inst_2 i))) Y)))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i))) Y) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i) i (neg_add_self.{u1} A _inst_2 i))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) Y (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i))) Y) f (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i) i (neg_add_self.{u1} A _inst_2 i))) Y)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_neg_shift' CategoryTheory.shift_neg_shift'ₓ'. -/
 theorem shift_neg_shift' (i : A) :
     f⟦-i⟧'⟦i⟧' =
@@ -781,10 +733,7 @@ theorem shift_neg_shift' (i : A) :
 #align category_theory.shift_neg_shift' CategoryTheory.shift_neg_shift'
 
 /- warning: category_theory.shift_equiv_triangle -> CategoryTheory.shift_equiv_triangle is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X)) (CategoryTheory.Iso.inv.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X)) X (CategoryTheory.shiftShiftNeg.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X n))) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.shiftNegShift.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) n))) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X)) (CategoryTheory.Iso.inv.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X)) X (CategoryTheory.shiftShiftNeg.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X n))) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (CategoryTheory.shiftNegShift.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) n))) (CategoryTheory.CategoryStruct.id.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_equiv_triangle CategoryTheory.shift_equiv_triangleₓ'. -/
 theorem shift_equiv_triangle (n : A) (X : C) :
     (shiftShiftNeg X n).inv⟦n⟧' ≫ (shiftNegShift (X⟦n⟧) n).Hom = 𝟙 (X⟦n⟧) :=
@@ -794,10 +743,7 @@ theorem shift_equiv_triangle (n : A) (X : C) :
 section
 
 /- warning: category_theory.shift_shift_functor_comp_iso_id_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (m : A) (h : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) n m) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n m h)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m n (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Eq.ndrec.{0, succ u3} A n (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m _a) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m) (Eq.symm.{succ u3} A (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m) n (neg_eq_of_add_eq_zero_left.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2) n m h)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) m)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A _a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (add_right_neg.{u3} A _inst_2 m))) (rfl.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (m : A) (h : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) n m) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (NegZeroClass.toZero.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))))))) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n m h)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m n (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.ndrec.{0, succ u1} A n (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m _a) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m) (Eq.symm.{succ u1} A (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m) n (neg_eq_of_add_eq_zero_left.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2) n m h)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) m)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A _a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (add_right_neg.{u1} A _inst_2 m))) (Eq.refl.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
     (shiftFunctorCompIsoId C n m h).Hom.app X⟦n⟧' =
@@ -812,10 +758,7 @@ theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
 #align category_theory.shift_shift_functor_comp_iso_id_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_hom_app
 
 /- warning: category_theory.shift_shift_functor_comp_iso_id_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (m : A) (h : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) n m) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n m h)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m n (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Eq.ndrec.{0, succ u3} A n (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m _a) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m) (Eq.symm.{succ u3} A (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m) n (neg_eq_of_add_eq_zero_left.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2) n m h)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) m)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A _a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (add_right_neg.{u3} A _inst_2 m))) (rfl.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (m : A) (h : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) n m) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (NegZeroClass.toZero.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))))))) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m))) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n m h)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m n (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.ndrec.{0, succ u1} A n (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m _a) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m) (Eq.symm.{succ u1} A (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m) n (neg_eq_of_add_eq_zero_left.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2) n m h)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) m)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A _a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (add_right_neg.{u1} A _inst_2 m))) (Eq.refl.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
     (shiftFunctorCompIsoId C n m h).inv.app X⟦n⟧' =
@@ -828,10 +771,7 @@ theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
 #align category_theory.shift_shift_functor_comp_iso_id_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_inv_app
 
 /- warning: category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) (add_neg_self.{u3} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) n (neg_add_self.{u3} A _inst_2 n))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) (add_neg_self.{u1} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) n (neg_add_self.{u1} A _inst_2 n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_add_neg_self_hom_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).Hom.app X⟦n⟧' =
@@ -840,10 +780,7 @@ theorem shift_shiftFunctorCompIsoId_add_neg_self_hom_app (n : A) (X : C) :
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app
 
 /- warning: category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) (add_neg_self.{u3} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) n (neg_add_self.{u3} A _inst_2 n))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)))) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) (add_neg_self.{u1} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) n (neg_add_self.{u1} A _inst_2 n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_add_neg_self_inv_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app X⟦n⟧' =
@@ -852,10 +789,7 @@ theorem shift_shiftFunctorCompIsoId_add_neg_self_inv_app (n : A) (X : C) :
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app
 
 /- warning: category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) n (neg_add_self.{u3} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) (add_neg_self.{u3} A _inst_2 n))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) n (neg_add_self.{u1} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) (add_neg_self.{u1} A _inst_2 n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_neg_add_self_hom_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).Hom.app X⟦-n⟧' =
@@ -864,10 +798,7 @@ theorem shift_shiftFunctorCompIsoId_neg_add_self_hom_app (n : A) (X : C) :
 #align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app
 
 /- warning: category_theory.shift_shift_functor_comp_iso_id_neg_add_self_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) n (neg_add_self.{u3} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) (add_neg_self.{u3} A _inst_2 n))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n))) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) n (neg_add_self.{u1} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) (add_neg_self.{u1} A _inst_2 n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_neg_add_self_inv_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app X⟦-n⟧' =
@@ -908,10 +839,7 @@ def shiftFunctorComm (i j : A) :
 -/
 
 /- warning: category_theory.shift_functor_comm_eq -> CategoryTheory.shiftFunctorComm_eq is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (i : A) (j : A) (k : A) (h : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) i j) k), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i))) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i j) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 k) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 k) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i j k h)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j i k (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) j i) k) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) j i) k) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) j i) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) j i) k) (Eq.{succ u3} A _a k)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) j i) k)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) (add_comm.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2) j i))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k) (Eq.{succ u3} A k k) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k) (Eq.{succ u3} A k k)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) i j) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k) (Eq.{succ u3} A _a k)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k)) k h)) (rfl.{succ u3} A k)))))
-but is expected to have type
-  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (i : A) (j : A) (k : A) (h : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) i j) k), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i))) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 k) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (CategoryTheory.Iso.symm.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 k) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i j k h)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j i k (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) j i) k) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) j i) k) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) j i) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) j i) k) (Eq.{succ u1} A _a k)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) j i) k)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) (add_comm.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2) j i))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k) (Eq.{succ u1} A k k) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k) (Eq.{succ u1} A k k)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) i j) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k) (Eq.{succ u1} A _a k)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k)) k h)) (Eq.refl.{succ u1} A k)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_eq CategoryTheory.shiftFunctorComm_eqₓ'. -/
 theorem shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
     shiftFunctorComm C i j =
@@ -965,10 +893,7 @@ theorem shiftComm_symm (i j : A) : (shiftComm X i j).symm = shiftComm X j i :=
 variable {X Y}
 
 /- warning: category_theory.shift_comm' -> CategoryTheory.shiftComm' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X Y f)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y j i))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X Y f)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y j i))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm' CategoryTheory.shiftComm'ₓ'. -/
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
 theorem shiftComm' (i j : A) :
@@ -980,10 +905,7 @@ theorem shiftComm' (i j : A) :
 #align category_theory.shift_comm' CategoryTheory.shiftComm'
 
 /- warning: category_theory.shift_comm_hom_comp -> CategoryTheory.shiftComm_hom_comp is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X Y f))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X Y f)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y i j)))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X Y f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X Y f)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y i j)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_compₓ'. -/
 @[reassoc]
 theorem shiftComm_hom_comp (i j : A) :
@@ -992,10 +914,7 @@ theorem shiftComm_hom_comp (i j : A) :
 #align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_comp
 
 /- warning: category_theory.shift_functor_zero_hom_app_shift -> CategoryTheory.shiftFunctorZero_hom_app_shift is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} (n : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) X) X (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3)) X)))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} (n : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X))) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3)) X)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_zero_hom_app_shift CategoryTheory.shiftFunctorZero_hom_app_shiftₓ'. -/
 theorem shiftFunctorZero_hom_app_shift (n : A) :
     (shiftFunctorZero C A).Hom.app (X⟦n⟧) =
@@ -1007,10 +926,7 @@ theorem shiftFunctorZero_hom_app_shift (n : A) :
 #align category_theory.shift_functor_zero_hom_app_shift CategoryTheory.shiftFunctorZero_hom_app_shift
 
 /- warning: category_theory.shift_functor_zero_inv_app_shift -> CategoryTheory.shiftFunctorZero_inv_app_shift is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} (n : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) X))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} (n : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X))) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_zero_inv_app_shift CategoryTheory.shiftFunctorZero_inv_app_shiftₓ'. -/
 theorem shiftFunctorZero_inv_app_shift (n : A) :
     (shiftFunctorZero C A).inv.app (X⟦n⟧) =
@@ -1024,10 +940,7 @@ theorem shiftFunctorZero_inv_app_shift (n : A) :
 #align category_theory.shift_functor_zero_inv_app_shift CategoryTheory.shiftFunctorZero_inv_app_shift
 
 /- warning: category_theory.shift_functor_comm_hom_app_comp_shift_shift_functor_add_hom_app -> CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂ m₃)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 m₁ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) X))))
-but is expected to have type
-  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂ m₃)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_hom_app_comp_shift_shift_functor_add_hom_app CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_appₓ'. -/
 @[reassoc]
 theorem shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m₃ : A) (X : C) :
@@ -1080,10 +993,7 @@ def hasShiftOfFullyFaithful_zero : s 0 ≅ 𝟭 C :=
 #align category_theory.has_shift_of_fully_faithful_zero CategoryTheory.hasShiftOfFullyFaithful_zero
 
 /- warning: category_theory.map_has_shift_of_fully_faithful_zero_hom_app -> CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.map.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.hasShiftOfFullyFaithful_zero.{u1, u2, u3, u4, u5} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) X) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) (CategoryTheory.Iso.hom.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) (i (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) X) (CategoryTheory.NatTrans.app.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u5, u4} D _inst_2) (CategoryTheory.Iso.hom.{max u4 u5, max u5 u4} (CategoryTheory.Functor.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u5, u4} D _inst_2) (CategoryTheory.shiftFunctorZero.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)))
-but is expected to have type
-  forall {C : Type.{u5}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u5} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u3, u2} D] [_inst_3 : AddMonoid.{u1} A] [_inst_4 : CategoryTheory.HasShift.{u3, u2, u1} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u5 u3, max (max (max u2 u5) u3) u4} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 i))) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1)) X))) (Prefunctor.map.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u4, u5} C _inst_1) (CategoryTheory.Iso.hom.{max u5 u4, max u5 u4} (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u4, u4, u5, u5} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u4, u5} C _inst_1) (CategoryTheory.hasShiftOfFullyFaithful_zero.{u4, u5, u1, u2, u3} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F)) X) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))))) X) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (CategoryTheory.Iso.hom.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (i (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X) (CategoryTheory.NatTrans.app.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u3, u2} D _inst_2) (CategoryTheory.Iso.hom.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u3, u2} D _inst_2) (CategoryTheory.shiftFunctorZero.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_appₓ'. -/
 @[simp]
 theorem map_hasShiftOfFullyFaithful_zero_hom_app (X : C) :
@@ -1095,10 +1005,7 @@ theorem map_hasShiftOfFullyFaithful_zero_hom_app (X : C) :
 #align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app
 
 /- warning: category_theory.map_has_shift_of_fully_faithful_zero_inv_app -> CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X))) (CategoryTheory.Functor.map.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.hasShiftOfFullyFaithful_zero.{u1, u2, u3, u4, u5} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X)) (CategoryTheory.NatTrans.app.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u5, u4} D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Iso.inv.{max u4 u5, max u5 u4} (CategoryTheory.Functor.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u5, u4} D _inst_2) (CategoryTheory.shiftFunctorZero.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) F) (CategoryTheory.Iso.inv.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) (i (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) X))
-but is expected to have type
-  forall {C : Type.{u5}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u5} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u3, u2} D] [_inst_3 : AddMonoid.{u1} A] [_inst_4 : CategoryTheory.HasShift.{u3, u2, u1} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u5 u3, max (max (max u2 u5) u3) u4} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 i))) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X))) (Prefunctor.map.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1)) X) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X) (CategoryTheory.NatTrans.app.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1) (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Iso.inv.{max u5 u4, max u5 u4} (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u4, u4, u5, u5} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u4, u5} C _inst_1) (CategoryTheory.hasShiftOfFullyFaithful_zero.{u4, u5, u1, u2, u3} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F)) X) (CategoryTheory.NatTrans.app.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u3, u2} D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Iso.inv.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u3, u2} D _inst_2) (CategoryTheory.shiftFunctorZero.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F) (CategoryTheory.Iso.inv.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (i (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_zero_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_appₓ'. -/
 @[simp]
 theorem map_hasShiftOfFullyFaithful_zero_inv_app (X : C) :
@@ -1127,10 +1034,7 @@ def hasShiftOfFullyFaithful_add (a b : A) : s (a + b) ≅ s a ⋙ s b :=
 #align category_theory.has_shift_of_fully_faithful_add CategoryTheory.hasShiftOfFullyFaithful_add
 
 /- warning: category_theory.map_has_shift_of_fully_faithful_add_hom_app -> CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) (a : A) (b : A) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X))) (CategoryTheory.Functor.map.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.hasShiftOfFullyFaithful_add.{u1, u2, u3, u4, u5} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i a b)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) X) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) (CategoryTheory.Iso.hom.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) (i (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) X) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) X) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.NatTrans.app.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Iso.hom.{max u4 u5, max u5 u4} (CategoryTheory.Functor.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctorAdd.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.Functor.map.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) X) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Iso.inv.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) (i a)) X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Iso.inv.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (i b)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)))))
-but is expected to have type
-  forall {C : Type.{u5}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u5} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u3, u2} D] [_inst_3 : AddMonoid.{u1} A] [_inst_4 : CategoryTheory.HasShift.{u3, u2, u1} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u5 u3, max (max (max u2 u5) u3) u4} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 i))) (a : A) (b : A) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b))) X))) (Prefunctor.map.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b))) X) (CategoryTheory.NatTrans.app.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.Iso.hom.{max u5 u4, max u5 u4} (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u4, u4, u5, u5} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.hasShiftOfFullyFaithful_add.{u4, u5, u1, u2, u3} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i a b)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F)) X) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)))) X) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (CategoryTheory.Iso.hom.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (i (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)))) X) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b))) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (CategoryTheory.NatTrans.app.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Iso.hom.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctorAdd.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b))) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.map.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F)) X) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Iso.inv.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (i a)) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Iso.inv.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (i b)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_appₓ'. -/
 @[simp]
 theorem map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
@@ -1144,10 +1048,7 @@ theorem map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
 #align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app
 
 /- warning: category_theory.map_has_shift_of_fully_faithful_add_inv_app -> CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) (a : A) (b : A) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X))) (CategoryTheory.Functor.map.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.hasShiftOfFullyFaithful_add.{u1, u2, u3, u4, u5} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i a b)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Iso.hom.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (i b)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.Functor.map.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) X) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) (CategoryTheory.Iso.hom.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) (i a)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) X)) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.NatTrans.app.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Iso.inv.{max u4 u5, max u5 u4} (CategoryTheory.Functor.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctorAdd.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) F) (CategoryTheory.Iso.inv.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) (i (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) X))))
-but is expected to have type
-  forall {C : Type.{u5}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u5} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u3, u2} D] [_inst_3 : AddMonoid.{u1} A] [_inst_4 : CategoryTheory.HasShift.{u3, u2, u1} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u5 u3, max (max (max u2 u5) u3) u4} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 i))) (a : A) (b : A) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b))) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X))) (Prefunctor.map.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b))) X) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X) (CategoryTheory.NatTrans.app.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Iso.inv.{max u5 u4, max u5 u4} (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u4, u4, u5, u5} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.hasShiftOfFullyFaithful_add.{u4, u5, u1, u2, u3} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i a b)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b))) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F)) X) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Iso.hom.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (i b)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b))) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a))) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F)) X) (Prefunctor.map.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a))) X) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (CategoryTheory.Iso.hom.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (i a)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a))) X)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F)) X) (CategoryTheory.NatTrans.app.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Iso.inv.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctorAdd.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F) (CategoryTheory.Iso.inv.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (i (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_appₓ'. -/
 @[simp]
 theorem map_hasShiftOfFullyFaithful_add_inv_app (a b : A) (X : C) :
Diff
@@ -91,7 +91,7 @@ namespace ShiftMkCore
 
 variable {C A}
 
-attribute [reassoc.1] assoc_hom_app
+attribute [reassoc] assoc_hom_app
 
 /- warning: category_theory.shift_mk_core.assoc_inv_app -> CategoryTheory.ShiftMkCore.assoc_inv_app is a dubious translation:
 lean 3 declaration is
@@ -99,7 +99,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₂ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) X) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)))) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)))) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ m₂) m₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) m₁ m₂ m₃))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X))))))
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.assoc_inv_app CategoryTheory.ShiftMkCore.assoc_inv_appₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
     (h.f m₃).map ((h.add m₁ m₂).inv.app X) ≫ (h.add (m₁ + m₂) m₃).inv.app X =
       (h.add m₂ m₃).inv.app ((h.f m₁).obj X) ≫
@@ -516,7 +516,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) _a a₃) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃))))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ _a) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)))
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc_hom_app CategoryTheory.shiftFunctorAdd'_assoc_hom_appₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) (X : C) :
     (shiftFunctorAdd' C a₁₂ a₃ a₁₂₃ (by rw [← h₁₂, h₁₂₃])).Hom.app X ≫
@@ -534,7 +534,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) _a a₃) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃))))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ _a) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃)))))) X))
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc_inv_app CategoryTheory.shiftFunctorAdd'_assoc_inv_appₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) (X : C) :
     (shiftFunctorAdd' C a₁ a₂ a₁₂ h₁₂).inv.app X⟦a₃⟧' ≫
@@ -552,7 +552,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)))
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc_hom_app CategoryTheory.shiftFunctorAdd_assoc_hom_appₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
     (shiftFunctorAdd C (a₁ + a₂) a₃).Hom.app X ≫ (shiftFunctorAdd C a₁ a₂).Hom.app X⟦a₃⟧' =
       (shiftFunctorAdd' C a₁ (a₂ + a₃) (a₁ + a₂ + a₃) (add_assoc _ _ _).symm).Hom.app X ≫
@@ -566,7 +566,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) X))
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc_inv_app CategoryTheory.shiftFunctorAdd_assoc_inv_appₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem shiftFunctorAdd_assoc_inv_app (a₁ a₂ a₃ : A) (X : C) :
     (shiftFunctorAdd C a₁ a₂).inv.app X⟦a₃⟧' ≫ (shiftFunctorAdd C (a₁ + a₂) a₃).inv.app X =
       (shiftFunctorAdd C a₂ a₃).inv.app (X⟦a₁⟧) ≫
@@ -985,7 +985,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X Y f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X Y f)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y i j)))
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_compₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem shiftComm_hom_comp (i j : A) :
     (shiftComm X i j).Hom ≫ f⟦j⟧'⟦i⟧' = f⟦i⟧'⟦j⟧' ≫ (shiftComm Y i j).Hom := by
   rw [shift_comm', ← shift_comm_symm, iso.symm_hom, iso.inv_hom_id_assoc]
@@ -1029,7 +1029,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂ m₃)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X))))
 Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_hom_app_comp_shift_shift_functor_add_hom_app CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_appₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m₃ : A) (X : C) :
     (shiftFunctorComm C m₁ (m₂ + m₃)).Hom.app X ≫ (shiftFunctorAdd C m₂ m₃).Hom.app X⟦m₁⟧' =
       (shiftFunctorAdd C m₂ m₃).Hom.app (X⟦m₁⟧) ≫
Diff
@@ -628,17 +628,17 @@ abbrev shiftZero : X⟦0⟧ ≅ X :=
   (shiftFunctorZero C A).app _
 #align category_theory.shift_zero CategoryTheory.shiftZero
 
-/- warning: category_theory.shift_zero' -> CategoryTheory.shift_zero' is a dubious translation:
+/- warning: category_theory.shift_zero' -> CategoryTheory.shiftZero' is a dubious translation:
 lean 3 declaration is
   forall {C : Type.{u2}} (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X Y f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X (CategoryTheory.shiftZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) f (CategoryTheory.Iso.inv.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) Y (CategoryTheory.shiftZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y))))
 but is expected to have type
   forall {C : Type.{u3}} (A : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X Y f) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) X (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) X (CategoryTheory.shiftZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) X Y (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) f (CategoryTheory.Iso.inv.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) Y (CategoryTheory.shiftZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y))))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero' CategoryTheory.shift_zero'ₓ'. -/
-theorem shift_zero' : f⟦(0 : A)⟧' = (shiftZero A X).Hom ≫ f ≫ (shiftZero A Y).inv :=
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero' CategoryTheory.shiftZero'ₓ'. -/
+theorem shiftZero' : f⟦(0 : A)⟧' = (shiftZero A X).Hom ≫ f ≫ (shiftZero A Y).inv :=
   by
   symm
   apply nat_iso.naturality_2
-#align category_theory.shift_zero' CategoryTheory.shift_zero'
+#align category_theory.shift_zero' CategoryTheory.shiftZero'
 
 variable (C) {A}
 
@@ -964,20 +964,20 @@ theorem shiftComm_symm (i j : A) : (shiftComm X i j).symm = shiftComm X j i :=
 
 variable {X Y}
 
-/- warning: category_theory.shift_comm' -> CategoryTheory.shift_comm' is a dubious translation:
+/- warning: category_theory.shift_comm' -> CategoryTheory.shiftComm' is a dubious translation:
 lean 3 declaration is
   forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X Y f)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y j i))))
 but is expected to have type
   forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X Y f)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y j i))))
-Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm' CategoryTheory.shift_comm'ₓ'. -/
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm' CategoryTheory.shiftComm'ₓ'. -/
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
-theorem shift_comm' (i j : A) :
+theorem shiftComm' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftComm _ _ _).Hom ≫ f⟦j⟧'⟦i⟧' ≫ (shiftComm _ _ _).Hom :=
   by
   erw [← shift_comm_symm Y i j, ← (shift_functor_comm C i j).Hom.naturality_assoc f,
     iso.hom_inv_id_app, category.comp_id]
   rfl
-#align category_theory.shift_comm' CategoryTheory.shift_comm'
+#align category_theory.shift_comm' CategoryTheory.shiftComm'
 
 /- warning: category_theory.shift_comm_hom_comp -> CategoryTheory.shiftComm_hom_comp is a dubious translation:
 lean 3 declaration is
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Johan Commelin, Andrew Yang, Joël Riou
 
 ! This file was ported from Lean 3 source module category_theory.shift.basic
-! leanprover-community/mathlib commit 6876fa15e3158ff3e4a4e2af1fb6e1945c6e8803
+! leanprover-community/mathlib commit d64d67d000b974f0d86a2be7918cf800be6271c8
 ! 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.Monoidal.Discrete
 /-!
 # Shift
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 A `shift` on a category `C` indexed by a monoid `A` is nothing more than a monoidal functor
 from `A` to `C ⥤ C`. A typical example to keep in mind might be the category of
 complexes `⋯ → C_{n-1} → C_n → C_{n+1} → ⋯`. It has a shift indexed by `ℤ`, where we assign to
Diff
@@ -55,12 +55,15 @@ section Defs
 
 variable (A C) [AddMonoid A]
 
+#print CategoryTheory.HasShift /-
 /-- A category has a shift indexed by an additive monoid `A`
 if there is a monoidal functor from `A` to `C ⥤ C`. -/
 class HasShift (C : Type u) (A : Type _) [Category.{v} C] [AddMonoid A] where
   shift : MonoidalFunctor (Discrete A) (C ⥤ C)
 #align category_theory.has_shift CategoryTheory.HasShift
+-/
 
+#print CategoryTheory.ShiftMkCore /-
 /-- A helper structure to construct the shift functor `(discrete A) ⥤ (C ⥤ C)`. -/
 @[nolint has_nonempty_instance]
 structure ShiftMkCore where
@@ -79,6 +82,7 @@ structure ShiftMkCore where
     ∀ (n : A) (X : C),
       (add n 0).Hom.app X = eqToHom (by dsimp <;> rw [add_zero]) ≫ zero.inv.app ((F n).obj X)
 #align category_theory.shift_mk_core CategoryTheory.ShiftMkCore
+-/
 
 namespace ShiftMkCore
 
@@ -86,6 +90,12 @@ variable {C A}
 
 attribute [reassoc.1] assoc_hom_app
 
+/- warning: category_theory.shift_mk_core.assoc_inv_app -> CategoryTheory.ShiftMkCore.assoc_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h m₂ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₂ m₃))) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₂ m₃))) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₁ m₂) m₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ m₂) m₃)) X))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) m₂ m₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) m₁ m₂ m₃))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) m₂ m₃))) X))))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₂) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₃)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₂ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h m₁) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃))) X) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)))) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)))) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ m₂) m₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ m₂) m₃))) X))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) m₂ m₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) m₁ m₂ m₃))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) m₂ m₃)))) X))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.assoc_inv_app CategoryTheory.ShiftMkCore.assoc_inv_appₓ'. -/
 @[reassoc.1]
 theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
     (h.f m₃).map ((h.add m₁ m₂).inv.app X) ≫ (h.add (m₁ + m₂) m₃).inv.app X =
@@ -99,6 +109,12 @@ theorem assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
   rfl
 #align category_theory.shift_mk_core.assoc_inv_app CategoryTheory.ShiftMkCore.assoc_inv_app
 
+/- warning: category_theory.shift_mk_core.zero_add_inv_app -> CategoryTheory.ShiftMkCore.zero_add_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n)) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n)) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ShiftMkCore.zero.{u1, u2, u3} C A _inst_1 _inst_2 h)) X)) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) n)) X))) n (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) n))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X))))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n)) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.ShiftMkCore.zero.{u2, u3, u1} C A _inst_1 _inst_2 h)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) n) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) n))) X))) n (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) n))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.zero_add_inv_app CategoryTheory.ShiftMkCore.zero_add_inv_appₓ'. -/
 theorem zero_add_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     (h.add 0 n).inv.app X = (h.f n).map (h.zero.Hom.app X) ≫ eqToHom (by dsimp <;> rw [zero_add]) :=
   by
@@ -107,6 +123,12 @@ theorem zero_add_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     eq_to_hom_refl]
 #align category_theory.shift_mk_core.zero_add_inv_app CategoryTheory.ShiftMkCore.zero_add_inv_app
 
+/- warning: category_theory.shift_mk_core.add_zero_inv_app -> CategoryTheory.ShiftMkCore.add_zero_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.ShiftMkCore.zero.{u1, u2, u3} C A _inst_1 _inst_2 h)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X))) n (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) n))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h n) X))))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.ShiftMkCore.zero.{u2, u3, u1} C A _inst_1 _inst_2 h)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X))) n (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) n))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h n)) X))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.add_zero_inv_app CategoryTheory.ShiftMkCore.add_zero_inv_appₓ'. -/
 theorem add_zero_inv_app (h : ShiftMkCore C A) (n : A) (X : C) :
     (h.add n 0).inv.app X = h.zero.Hom.app ((h.f n).obj X) ≫ eqToHom (by dsimp <;> rw [add_zero]) :=
   by
@@ -122,6 +144,7 @@ attribute [local simp] eq_to_hom_map
 
 attribute [local reducible] endofunctor_monoidal_category Discrete.addMonoidal
 
+#print CategoryTheory.hasShiftMk /-
 /-- Constructs a `has_shift C A` instance from `shift_mk_core`. -/
 def hasShiftMk (h : ShiftMkCore C A) : HasShift C A :=
   ⟨{ Discrete.functor h.f with
@@ -154,6 +177,7 @@ def hasShiftMk (h : ShiftMkCore C A) : HasShift C A :=
         simpa only [h.add_zero_inv_app, Functor.map_id, category.comp_id, eq_to_hom_map,
           eq_to_hom_app, category.assoc, eq_to_hom_trans, eq_to_hom_refl, iso.inv_hom_id_app] }⟩
 #align category_theory.has_shift_mk CategoryTheory.hasShiftMk
+-/
 
 end
 
@@ -161,6 +185,12 @@ section
 
 variable [HasShift C A]
 
+/- warning: category_theory.shift_monoidal_functor -> CategoryTheory.shiftMonoidalFunctor is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2], CategoryTheory.MonoidalFunctor.{u3, max u2 u1, u3, max u1 u2} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (Discrete.addMonoidal.{u3} A _inst_2) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u1, u2} C _inst_1)
+but is expected to have type
+  forall (C : Type.{u2}) (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2], CategoryTheory.MonoidalFunctor.{u3, max u2 u1, u3, max u2 u1} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (CategoryTheory.Discrete.addMonoidal.{u3} A _inst_2) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u1, u2} C _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_monoidal_functor CategoryTheory.shiftMonoidalFunctorₓ'. -/
 /-- The monoidal functor from `A` to `C ⥤ C` given a `has_shift` instance. -/
 def shiftMonoidalFunctor : MonoidalFunctor (Discrete A) (C ⥤ C) :=
   HasShift.shift
@@ -168,22 +198,42 @@ def shiftMonoidalFunctor : MonoidalFunctor (Discrete A) (C ⥤ C) :=
 
 variable {A}
 
+#print CategoryTheory.shiftFunctor /-
 /-- The shift autoequivalence, moving objects and morphisms 'up'. -/
 def shiftFunctor (i : A) : C ⥤ C :=
   (shiftMonoidalFunctor C A).obj ⟨i⟩
 #align category_theory.shift_functor CategoryTheory.shiftFunctor
+-/
 
+/- warning: category_theory.shift_functor_add -> CategoryTheory.shiftFunctorAdd is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j))
+but is expected to have type
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add CategoryTheory.shiftFunctorAddₓ'. -/
 /-- Shifting by `i + j` is the same as shifting by `i` and then shifting by `j`. -/
 def shiftFunctorAdd (i j : A) : shiftFunctor C (i + j) ≅ shiftFunctor C i ⋙ shiftFunctor C j :=
   ((shiftMonoidalFunctor C A).μIso ⟨i⟩ ⟨j⟩).symm
 #align category_theory.shift_functor_add CategoryTheory.shiftFunctorAdd
 
+/- warning: category_theory.shift_functor_add' -> CategoryTheory.shiftFunctorAdd' is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A) (k : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) k) -> (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 k) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)))
+but is expected to have type
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A) (k : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) k) -> (CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 k) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add' CategoryTheory.shiftFunctorAdd'ₓ'. -/
 /-- When `k = i + j`, shifting by `k` is the same as shifting by `i` and then shifting by `j`. -/
 def shiftFunctorAdd' (i j k : A) (h : i + j = k) :
     shiftFunctor C k ≅ shiftFunctor C i ⋙ shiftFunctor C j :=
   eqToIso (by rw [h]) ≪≫ shiftFunctorAdd C i j
 #align category_theory.shift_functor_add' CategoryTheory.shiftFunctorAdd'
 
+/- warning: category_theory.shift_functor_add'_eq_shift_functor_add -> CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAdd is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i j (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) (rfl.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i j)
+but is expected to have type
+  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (i : A) (j : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j) (rfl.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_eq_shift_functor_add CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAddₓ'. -/
 theorem shiftFunctorAdd'_eq_shiftFunctorAdd (i j : A) :
     shiftFunctorAdd' C i j (i + j) rfl = shiftFunctorAdd C i j :=
   by
@@ -193,6 +243,12 @@ theorem shiftFunctorAdd'_eq_shiftFunctorAdd (i j : A) :
 
 variable (A)
 
+/- warning: category_theory.shift_functor_zero -> CategoryTheory.shiftFunctorZero is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2], CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)
+but is expected to have type
+  forall (C : Type.{u2}) (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A _inst_2)))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_zero CategoryTheory.shiftFunctorZeroₓ'. -/
 /-- Shifting by zero is the identity functor. -/
 def shiftFunctorZero : shiftFunctor C (0 : A) ≅ 𝟭 C :=
   (shiftMonoidalFunctor C A).εIso.symm
@@ -202,11 +258,23 @@ end
 
 variable {C A}
 
+/- warning: category_theory.shift_mk_core.shift_functor_eq -> CategoryTheory.ShiftMkCore.shiftFunctor_eq is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (a : A), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) a) (CategoryTheory.ShiftMkCore.f.{u1, u2, u3} C A _inst_1 _inst_2 h a)
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (a : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) a) (CategoryTheory.ShiftMkCore.F.{u2, u3, u1} C A _inst_1 _inst_2 h a)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.shift_functor_eq CategoryTheory.ShiftMkCore.shiftFunctor_eqₓ'. -/
 theorem ShiftMkCore.shiftFunctor_eq (h : ShiftMkCore C A) (a : A) :
     @shiftFunctor _ _ _ _ (hasShiftMk C A h) a = h.f a :=
   Functor.ext (by tidy) (by tidy)
 #align category_theory.shift_mk_core.shift_functor_eq CategoryTheory.ShiftMkCore.shiftFunctor_eq
 
+/- warning: category_theory.shift_mk_core.shift_functor_zero_eq -> CategoryTheory.ShiftMkCore.shiftFunctorZero_eq is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h)) (CategoryTheory.ShiftMkCore.zero.{u1, u2, u3} C A _inst_1 _inst_2 h)
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h)) (CategoryTheory.ShiftMkCore.zero.{u2, u3, u1} C A _inst_1 _inst_2 h)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.shift_functor_zero_eq CategoryTheory.ShiftMkCore.shiftFunctorZero_eqₓ'. -/
 theorem ShiftMkCore.shiftFunctorZero_eq (h : ShiftMkCore C A) :
     @shiftFunctorZero _ _ _ _ (hasShiftMk C A h) = h.zero :=
   by
@@ -219,6 +287,12 @@ theorem ShiftMkCore.shiftFunctorZero_eq (h : ShiftMkCore C A) :
   rfl
 #align category_theory.shift_mk_core.shift_functor_zero_eq CategoryTheory.ShiftMkCore.shiftFunctorZero_eq
 
+/- warning: category_theory.shift_mk_core.shift_functor_add_eq -> CategoryTheory.ShiftMkCore.shiftFunctorAdd_eq is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] (h : CategoryTheory.ShiftMkCore.{u1, u2, u3} C A _inst_1 _inst_2) (a : A) (b : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) b))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u1, u2, u3} C A _inst_1 _inst_2 h) a b) (CategoryTheory.ShiftMkCore.add.{u1, u2, u3} C A _inst_1 _inst_2 h a b)
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] (h : CategoryTheory.ShiftMkCore.{u2, u3, u1} C A _inst_1 _inst_2) (a : A) (b : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a b)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) b))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 (CategoryTheory.hasShiftMk.{u2, u3, u1} C A _inst_1 _inst_2 h) a b) (CategoryTheory.ShiftMkCore.add.{u2, u3, u1} C A _inst_1 _inst_2 h a b)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_mk_core.shift_functor_add_eq CategoryTheory.ShiftMkCore.shiftFunctorAdd_eqₓ'. -/
 theorem ShiftMkCore.shiftFunctorAdd_eq (h : ShiftMkCore C A) (a b : A) :
     @shiftFunctorAdd _ _ _ _ (hasShiftMk C A h) a b = h.add a b :=
   by
@@ -244,6 +318,12 @@ variable [HasShift C A]
 
 attribute [local reducible] endofunctor_monoidal_category Discrete.addMonoidal
 
+/- warning: category_theory.shift_functor_add'_zero_add -> CategoryTheory.shiftFunctorAdd'_zero_add is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a)) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.leftUnitor.{u2, u1, u2, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.isoWhiskerRight.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)))
+but is expected to have type
+  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a)) (CategoryTheory.Iso.trans.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.symm.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.leftUnitor.{u3, u2, u3, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.isoWhiskerRight.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.symm.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_zero_add CategoryTheory.shiftFunctorAdd'_zero_addₓ'. -/
 theorem shiftFunctorAdd'_zero_add (a : A) :
     shiftFunctorAdd' C 0 a a (zero_add a) =
       (Functor.leftUnitor _).symm ≪≫
@@ -255,6 +335,12 @@ theorem shiftFunctorAdd'_zero_add (a : A) :
   simpa [eq_to_hom_map]
 #align category_theory.shift_functor_add'_zero_add CategoryTheory.shiftFunctorAdd'_zero_add
 
+/- warning: category_theory.shift_functor_add'_add_zero -> CategoryTheory.shiftFunctorAdd'_add_zero is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a)) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.rightUnitor.{u2, u1, u2, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.isoWhiskerLeft.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3))))
+but is expected to have type
+  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a)) (CategoryTheory.Iso.trans.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.symm.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.rightUnitor.{u3, u2, u3, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) (CategoryTheory.isoWhiskerLeft.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.symm.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_add_zero CategoryTheory.shiftFunctorAdd'_add_zeroₓ'. -/
 theorem shiftFunctorAdd'_add_zero (a : A) :
     shiftFunctorAdd' C a 0 a (add_zero a) =
       (Functor.rightUnitor _).symm ≪≫
@@ -266,6 +352,12 @@ theorem shiftFunctorAdd'_add_zero (a : A) :
   simpa [eq_to_hom_map]
 #align category_theory.shift_functor_add'_add_zero CategoryTheory.shiftFunctorAdd'_add_zero
 
+/- warning: category_theory.shift_functor_add'_assoc -> CategoryTheory.shiftFunctorAdd'_assoc is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) _a a₃) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.isoWhiskerRight.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.associator.{u2, u1, u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ _a) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃))))) (CategoryTheory.isoWhiskerLeft.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)))
+but is expected to have type
+  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) _a a₃) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.isoWhiskerRight.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.associator.{u3, u2, u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ _a) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃))))) (CategoryTheory.isoWhiskerLeft.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc CategoryTheory.shiftFunctorAdd'_assocₓ'. -/
 theorem shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) :
     shiftFunctorAdd' C a₁₂ a₃ a₁₂₃ (by rw [← h₁₂, h₁₂₃]) ≪≫
@@ -281,6 +373,12 @@ theorem shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (
   simp [obj_μ_inv_app, eq_to_hom_map]
 #align category_theory.shift_functor_add'_assoc CategoryTheory.shiftFunctorAdd'_assoc
 
+/- warning: category_theory.shift_functor_add_assoc -> CategoryTheory.shiftFunctorAdd_assoc is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.isoWhiskerRight.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.associator.{u2, u1, u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃))) (CategoryTheory.isoWhiskerLeft.{u2, u1, u2, u1, u2, u1} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃)))
+but is expected to have type
+  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.isoWhiskerRight.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Functor.associator.{u3, u2, u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)))) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃))) (CategoryTheory.isoWhiskerLeft.{u3, u2, u3, u2, u3, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc CategoryTheory.shiftFunctorAdd_assocₓ'. -/
 theorem shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
     shiftFunctorAdd C (a₁ + a₂) a₃ ≪≫
         isoWhiskerRight (shiftFunctorAdd C a₁ a₂) _ ≪≫ Functor.associator _ _ _ =
@@ -295,11 +393,23 @@ theorem shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
 
 variable {C}
 
+/- warning: category_theory.shift_functor_add'_zero_add_hom_app -> CategoryTheory.shiftFunctorAdd'_zero_add_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_zero_add_hom_app CategoryTheory.shiftFunctorAdd'_zero_add_hom_appₓ'. -/
 theorem shiftFunctorAdd'_zero_add_hom_app (a : A) (X : C) :
     (shiftFunctorAdd' C 0 a a (zero_add a)).Hom.app X = (shiftFunctorZero C A).inv.app X⟦a⟧' := by
   simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_zero_add C a)) X
 #align category_theory.shift_functor_add'_zero_add_hom_app CategoryTheory.shiftFunctorAdd'_zero_add_hom_app
 
+/- warning: category_theory.shift_functor_add_zero_add_hom_app -> CategoryTheory.shiftFunctorAdd_zero_add_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 _a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) X)))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X))) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 _a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_zero_add_hom_app CategoryTheory.shiftFunctorAdd_zero_add_hom_appₓ'. -/
 theorem shiftFunctorAdd_zero_add_hom_app (a : A) (X : C) :
     (shiftFunctorAdd C 0 a).Hom.app X =
       eqToHom (by dsimp <;> rw [zero_add]) ≫ (shiftFunctorZero C A).inv.app X⟦a⟧' :=
@@ -309,6 +419,12 @@ theorem shiftFunctorAdd_zero_add_hom_app (a : A) (X : C) :
   simp
 #align category_theory.shift_functor_add_zero_add_hom_app CategoryTheory.shiftFunctorAdd_zero_add_hom_app
 
+/- warning: category_theory.shift_functor_add'_zero_add_inv_app -> CategoryTheory.shiftFunctorAdd'_zero_add_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_appₓ'. -/
 theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
     (shiftFunctorAdd' C 0 a a (zero_add a)).inv.app X = (shiftFunctorZero C A).Hom.app X⟦a⟧' :=
   by
@@ -319,6 +435,12 @@ theorem shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_app
 
+/- warning: category_theory.shift_functor_add_zero_add_inv_app -> CategoryTheory.shiftFunctorAdd_zero_add_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) X)) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a)) X))) a (zero_add.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a)) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2)))) a) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a))) X))) a (zero_add.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_zero_add_inv_app CategoryTheory.shiftFunctorAdd_zero_add_inv_appₓ'. -/
 theorem shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
     (shiftFunctorAdd C 0 a).inv.app X =
       (shiftFunctorZero C A).Hom.app X⟦a⟧' ≫ eqToHom (by dsimp <;> rw [zero_add]) :=
@@ -328,11 +450,23 @@ theorem shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
   simp
 #align category_theory.shift_functor_add_zero_add_inv_app CategoryTheory.shiftFunctorAdd_zero_add_inv_app
 
+/- warning: category_theory.shift_functor_add'_add_zero_hom_app -> CategoryTheory.shiftFunctorAdd'_add_zero_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_add_zero_hom_app CategoryTheory.shiftFunctorAdd'_add_zero_hom_appₓ'. -/
 theorem shiftFunctorAdd'_add_zero_hom_app (a : A) (X : C) :
     (shiftFunctorAdd' C a 0 a (add_zero a)).Hom.app X = (shiftFunctorZero C A).inv.app (X⟦a⟧) := by
   simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_add_zero C a)) X
 #align category_theory.shift_functor_add'_add_zero_hom_app CategoryTheory.shiftFunctorAdd'_add_zero_hom_app
 
+/- warning: category_theory.shift_functor_add_add_zero_hom_app -> CategoryTheory.shiftFunctorAdd_add_zero_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 _a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 _a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))))) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_add_zero_hom_app CategoryTheory.shiftFunctorAdd_add_zero_hom_appₓ'. -/
 theorem shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
     (shiftFunctorAdd C a 0).Hom.app X =
       eqToHom (by dsimp <;> rw [add_zero]) ≫ (shiftFunctorZero C A).inv.app (X⟦a⟧) :=
@@ -342,6 +476,12 @@ theorem shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
   simp
 #align category_theory.shift_functor_add_add_zero_hom_app CategoryTheory.shiftFunctorAdd_add_zero_hom_app
 
+/- warning: category_theory.shift_functor_add'_add_zero_inv_app -> CategoryTheory.shiftFunctorAdd'_add_zero_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_appₓ'. -/
 theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
     (shiftFunctorAdd' C a 0 a (add_zero a)).inv.app X = (shiftFunctorZero C A).Hom.app (X⟦a⟧) :=
   by
@@ -352,6 +492,12 @@ theorem shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
   simpa only [category.comp_id] using this
 #align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_app
 
+/- warning: category_theory.shift_functor_add_add_zero_inv_app -> CategoryTheory.shiftFunctorAdd_add_zero_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.eqToHom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X) (id.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.mpr.{0} (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X)) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X)) (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 _a) X))) (rfl.{1} Prop (Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))))))) X))) a (add_zero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2) a))) (rfl.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a) X))))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (CategoryTheory.eqToHom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X) (id.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.mpr.{0} (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X)) (id.{0} (Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddZeroClass.toZero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))))) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X)) (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 _a)) X))) (Eq.refl.{1} Prop (Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2)))))) X))) a (add_zero.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2) a))) (Eq.refl.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a)) X))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_add_zero_inv_app CategoryTheory.shiftFunctorAdd_add_zero_inv_appₓ'. -/
 theorem shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
     (shiftFunctorAdd C a 0).inv.app X =
       (shiftFunctorZero C A).Hom.app (X⟦a⟧) ≫ eqToHom (by dsimp <;> rw [add_zero]) :=
@@ -361,6 +507,12 @@ theorem shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
   simp
 #align category_theory.shift_functor_add_add_zero_inv_app CategoryTheory.shiftFunctorAdd_add_zero_inv_app
 
+/- warning: category_theory.shift_functor_add'_assoc_hom_app -> CategoryTheory.shiftFunctorAdd'_assoc_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) _a a₃) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃))))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ _a) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃)))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) _a a₃) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃))))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ _a) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc_hom_app CategoryTheory.shiftFunctorAdd'_assoc_hom_appₓ'. -/
 @[reassoc.1]
 theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) (X : C) :
@@ -373,6 +525,12 @@ theorem shiftFunctorAdd'_assoc_hom_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂
     nat_trans.congr_app (congr_arg iso.hom (shift_functor_add'_assoc C _ _ _ _ _ _ h₁₂ h₂₃ h₁₂₃)) X
 #align category_theory.shift_functor_add'_assoc_hom_app CategoryTheory.shiftFunctorAdd'_assoc_hom_app
 
+/- warning: category_theory.shift_functor_add'_assoc_inv_app -> CategoryTheory.shiftFunctorAdd'_assoc_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) _a a₃) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃))))) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u3} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ _a) a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u3} A _a a₁₂₃)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (rfl.{succ u3} A a₁₂₃)))))) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (a₁₂ : A) (a₂₃ : A) (a₁₂₃ : A) (h₁₂ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂) (h₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃) (h₁₂₃ : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂ a₁₂ h₁₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂ a₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₁₂ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) _a a₃) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁₂ a₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₁₂ h₁₂))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃))))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃ a₂₃ h₂₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁₂₃) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂₃)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂₃ a₁₂₃ (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (Eq.ndrec.{0, succ u1} A a₂₃ (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ _a) a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂₃) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) a₂₃ h₂₃))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) a₁₂₃)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A a₁₂₃ a₁₂₃)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃) (Eq.{succ u1} A _a a₁₂₃)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) a₁₂₃)) a₁₂₃ h₁₂₃)) (Eq.refl.{succ u1} A a₁₂₃)))))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add'_assoc_inv_app CategoryTheory.shiftFunctorAdd'_assoc_inv_appₓ'. -/
 @[reassoc.1]
 theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂)
     (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) (X : C) :
@@ -385,6 +543,12 @@ theorem shiftFunctorAdd'_assoc_inv_app (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂
     nat_trans.congr_app (congr_arg iso.inv (shift_functor_add'_assoc C _ _ _ _ _ _ h₁₂ h₂₃ h₁₂₃)) X
 #align category_theory.shift_functor_add'_assoc_inv_app CategoryTheory.shiftFunctorAdd'_assoc_inv_app
 
+/- warning: category_theory.shift_functor_add_assoc_hom_app -> CategoryTheory.shiftFunctorAdd_assoc_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc_hom_app CategoryTheory.shiftFunctorAdd_assoc_hom_appₓ'. -/
 @[reassoc.1]
 theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
     (shiftFunctorAdd C (a₁ + a₂) a₃).Hom.app X ≫ (shiftFunctorAdd C a₁ a₂).Hom.app X⟦a₃⟧' =
@@ -393,6 +557,12 @@ theorem shiftFunctorAdd_assoc_hom_app (a₁ a₂ a₃ : A) (X : C) :
   by simpa using nat_trans.congr_app (congr_arg iso.hom (shift_functor_add_assoc C a₁ a₂ a₃)) X
 #align category_theory.shift_functor_add_assoc_hom_app CategoryTheory.shiftFunctorAdd_assoc_hom_app
 
+/- warning: category_theory.shift_functor_add_assoc_inv_app -> CategoryTheory.shiftFunctorAdd_assoc_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2))) a₂ a₃)) (add_assoc.{u3} A (AddMonoid.toAddSemigroup.{u3} A _inst_2) a₁ a₂ a₃)))) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (a₁ : A) (a₂ : A) (a₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ a₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₂ a₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃))) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₂ a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) a₁ a₂) a₃) (Eq.symm.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ a₂) a₃) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2))) a₂ a₃)) (add_assoc.{u1} A (AddMonoid.toAddSemigroup.{u1} A _inst_2) a₁ a₂ a₃)))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_add_assoc_inv_app CategoryTheory.shiftFunctorAdd_assoc_inv_appₓ'. -/
 @[reassoc.1]
 theorem shiftFunctorAdd_assoc_inv_app (a₁ a₂ a₃ : A) (X : C) :
     (shiftFunctorAdd C a₁ a₂).inv.app X⟦a₃⟧' ≫ (shiftFunctorAdd C (a₁ + a₂) a₃).inv.app X =
@@ -407,16 +577,34 @@ section AddMonoid
 
 variable {C A} [AddMonoid A] [HasShift C A] (X Y : C) (f : X ⟶ Y)
 
+/- warning: category_theory.has_shift.shift_obj_obj -> CategoryTheory.HasShift.shift_obj_obj is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (n : A) (X : C), Eq.{succ u2} C (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.obj.{u3, max u2 u1, u3, max u1 u2} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u3, max u2 u1, u3, max u1 u2} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (Discrete.addMonoidal.{u3} A _inst_2) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u1, u2} C _inst_1) (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u3, max u2 u1, u3, max u1 u2} (CategoryTheory.Discrete.{u3} A) (CategoryTheory.discreteCategory.{u3} A) (Discrete.addMonoidal.{u3} A _inst_2) (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u1, u2} C _inst_1) (CategoryTheory.HasShift.shift.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3))) (CategoryTheory.Discrete.mk.{u3} A n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 n) X)
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (n : A) (X : C), Eq.{succ u3} C (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (Prefunctor.obj.{succ u1, max (succ u3) (succ u2), u1, max u3 u2} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.discreteCategory.{u1} A))) (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u1, max u3 u2, u1, max u3 u2} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.discreteCategory.{u1} A) (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.LaxMonoidalFunctor.toFunctor.{u1, max u3 u2, u1, max u3 u2} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.discreteCategory.{u1} A) (CategoryTheory.Discrete.addMonoidal.{u1} A _inst_2) (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u2, u3} C _inst_1) (CategoryTheory.MonoidalFunctor.toLaxMonoidalFunctor.{u1, max u3 u2, u1, max u3 u2} (CategoryTheory.Discrete.{u1} A) (CategoryTheory.discreteCategory.{u1} A) (CategoryTheory.Discrete.addMonoidal.{u1} A _inst_2) (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.endofunctorMonoidalCategory.{u2, u3} C _inst_1) (CategoryTheory.HasShift.shift.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3)))) (CategoryTheory.Discrete.mk.{u1} A n))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 n)) X)
+Case conversion may be inaccurate. Consider using '#align category_theory.has_shift.shift_obj_obj CategoryTheory.HasShift.shift_obj_objₓ'. -/
 @[simp]
 theorem HasShift.shift_obj_obj (n : A) (X : C) : (HasShift.shift.obj ⟨n⟩).obj X = X⟦n⟧ :=
   rfl
 #align category_theory.has_shift.shift_obj_obj CategoryTheory.HasShift.shift_obj_obj
 
+/- warning: category_theory.shift_add -> CategoryTheory.shiftAdd is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (i : A) (j : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X))
+but is expected to have type
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (i : A) (j : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_add CategoryTheory.shiftAddₓ'. -/
 /-- Shifting by `i + j` is the same as shifting by `i` and then shifting by `j`. -/
 abbrev shiftAdd (i j : A) : X⟦i + j⟧ ≅ X⟦i⟧⟦j⟧ :=
   (shiftFunctorAdd C i j).app _
 #align category_theory.shift_add CategoryTheory.shiftAdd
 
+/- warning: category_theory.shift_shift' -> CategoryTheory.shift_shift' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y)) (CategoryTheory.Iso.inv.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) X)) (CategoryTheory.shiftAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) X Y f) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j)) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) Y)) (CategoryTheory.shiftAdd.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y i j))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y)) (CategoryTheory.Iso.inv.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) X)) (CategoryTheory.shiftAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) Y) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) X Y f) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_2))) i j))) Y) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) Y)) (CategoryTheory.shiftAdd.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y i j))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift' CategoryTheory.shift_shift'ₓ'. -/
 theorem shift_shift' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftAdd X i j).inv ≫ f⟦i + j⟧' ≫ (shiftAdd Y i j).Hom :=
   by
@@ -426,11 +614,23 @@ theorem shift_shift' (i j : A) :
 
 variable (A)
 
+/- warning: category_theory.shift_zero -> CategoryTheory.shiftZero is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X
+but is expected to have type
+  forall {C : Type.{u2}} (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A _inst_2))))) X) X
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero CategoryTheory.shiftZeroₓ'. -/
 /-- Shifting by zero is the identity functor. -/
 abbrev shiftZero : X⟦0⟧ ≅ X :=
   (shiftFunctorZero C A).app _
 #align category_theory.shift_zero CategoryTheory.shiftZero
 
+/- warning: category_theory.shift_zero' -> CategoryTheory.shift_zero' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} (A : Type.{u3}) [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X Y f) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) X) X (CategoryTheory.shiftZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) f (CategoryTheory.Iso.inv.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) Y) Y (CategoryTheory.shiftZero.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y))))
+but is expected to have type
+  forall {C : Type.{u3}} (A : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 _inst_2] (X : C) (Y : C) (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X Y f) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) X (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) X) X (CategoryTheory.shiftZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) X Y (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) f (CategoryTheory.Iso.inv.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_2))))) Y) Y (CategoryTheory.shiftZero.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero' CategoryTheory.shift_zero'ₓ'. -/
 theorem shift_zero' : f⟦(0 : A)⟧' = (shiftZero A X).Hom ≫ f ≫ (shiftZero A Y).inv :=
   by
   symm
@@ -439,6 +639,12 @@ theorem shift_zero' : f⟦(0 : A)⟧' = (shiftZero A X).Hom ≫ f ≫ (shiftZero
 
 variable (C) {A}
 
+/- warning: category_theory.shift_functor_comp_iso_id -> CategoryTheory.shiftFunctorCompIsoId is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2)))))) -> (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1))
+but is expected to have type
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 _inst_2] (i : A) (j : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_2))) i j) (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A _inst_2)))) -> (CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comp_iso_id CategoryTheory.shiftFunctorCompIsoIdₓ'. -/
 /-- When `i + j = 0`, shifting by `i` and by `j` gives the identity functor -/
 def shiftFunctorCompIsoId (i j : A) (h : i + j = 0) : shiftFunctor C i ⋙ shiftFunctor C j ≅ 𝟭 C :=
   (shiftFunctorAdd' C i j 0 h).symm ≪≫ shiftFunctorZero C A
@@ -450,6 +656,12 @@ section AddGroup
 
 variable (C) {A} [AddGroup A] [HasShift C A]
 
+/- warning: category_theory.shift_equiv' -> CategoryTheory.shiftEquiv' is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (i : A) (j : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) i j) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} C _inst_1 C _inst_1)
+but is expected to have type
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (i : A) (j : A), (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) i j) (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (NegZeroClass.toZero.{u3} A (SubNegZeroMonoid.toNegZeroClass.{u3} A (SubtractionMonoid.toSubNegZeroMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))))))) -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} C C _inst_1 _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_equiv' CategoryTheory.shiftEquiv'ₓ'. -/
 /-- shifting by `i` and shifting by `j` forms an equivalence when `i + j = 0`. -/
 @[simps]
 def shiftEquiv' (i j : A) (h : i + j = 0) : C ≌ C
@@ -472,6 +684,12 @@ def shiftEquiv' (i j : A) (h : i + j = 0) : C ≌ C
       simpa only [eq_to_hom_map, category.assoc]
 #align category_theory.shift_equiv' CategoryTheory.shiftEquiv'
 
+/- warning: category_theory.shift_equiv -> CategoryTheory.shiftEquiv is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))], A -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} C _inst_1 C _inst_1)
+but is expected to have type
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))], A -> (CategoryTheory.Equivalence.{u1, u1, u2, u2} C C _inst_1 _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_equiv CategoryTheory.shiftEquivₓ'. -/
 /-- shifting by `n` and shifting by `-n` forms an equivalence. -/
 abbrev shiftEquiv (i : A) : C ≌ C :=
   shiftEquiv' C i (-i) (add_neg_self i)
@@ -483,6 +701,12 @@ variable (X Y : C) (f : X ⟶ Y)
 instance (i : A) : IsEquivalence (shiftFunctor C i) :=
   IsEquivalence.ofEquivalence (shiftEquiv C i)
 
+/- warning: category_theory.shift_functor_inv -> CategoryTheory.shiftFunctor_inv is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (i : A), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.inv.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.isEquivalence.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))
+but is expected to have type
+  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (i : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.inv.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.instIsEquivalenceShiftFunctorToAddMonoidToSubNegMonoid.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_inv CategoryTheory.shiftFunctor_invₓ'. -/
 @[simp]
 theorem shiftFunctor_inv (i : A) : (shiftFunctor C i).inv = shiftFunctor C (-i) :=
   rfl
@@ -492,20 +716,34 @@ section
 
 variable (C)
 
+#print CategoryTheory.shiftFunctor_essSurj /-
 /-- Shifting by `n` is an essentially surjective functor. -/
 instance shiftFunctor_essSurj (i : A) : EssSurj (shiftFunctor C i) :=
   Equivalence.essSurj_of_equivalence _
 #align category_theory.shift_functor_ess_surj CategoryTheory.shiftFunctor_essSurj
+-/
 
 end
 
 variable {C}
 
+/- warning: category_theory.shift_shift_neg -> CategoryTheory.shiftShiftNeg is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (X : C) (i : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X)) X
+but is expected to have type
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (X : C) (i : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (NegZeroClass.toNeg.{u3} A (SubNegZeroMonoid.toNegZeroClass.{u3} A (SubtractionMonoid.toSubNegZeroMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2)))) i))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) X)) X
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_neg CategoryTheory.shiftShiftNegₓ'. -/
 /-- Shifting by `i` and then shifting by `-i` is the identity. -/
 abbrev shiftShiftNeg (i : A) : X⟦i⟧⟦-i⟧ ≅ X :=
   (shiftEquiv C i).unitIso.symm.app _
 #align category_theory.shift_shift_neg CategoryTheory.shiftShiftNeg
 
+/- warning: category_theory.shift_neg_shift -> CategoryTheory.shiftNegShift is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (X : C) (i : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X)) X
+but is expected to have type
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (X : C) (i : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (NegZeroClass.toNeg.{u3} A (SubNegZeroMonoid.toNegZeroClass.{u3} A (SubtractionMonoid.toSubNegZeroMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2)))) i))) X)) X
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_neg_shift CategoryTheory.shiftNegShiftₓ'. -/
 /-- Shifting by `-i` and then shifting by `i` is the identity. -/
 abbrev shiftNegShift (i : A) : X⟦-i⟧⟦i⟧ ≅ X :=
   (shiftEquiv C i).counitIso.app _
@@ -513,6 +751,12 @@ abbrev shiftNegShift (i : A) : X⟦-i⟧⟦i⟧ ≅ X :=
 
 variable {X Y}
 
+/- warning: category_theory.shift_shift_neg' -> CategoryTheory.shift_shift_neg' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) Y)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i) (add_neg_self.{u3} A _inst_2 i))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) Y)) f (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i) (add_neg_self.{u3} A _inst_2 i))) Y)))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)))) Y) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i) (add_neg_self.{u1} A _inst_2 i))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) Y (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)))) Y) f (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i) (add_neg_self.{u1} A _inst_2 i))) Y)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_neg' CategoryTheory.shift_shift_neg'ₓ'. -/
 theorem shift_shift_neg' (i : A) :
     f⟦i⟧'⟦-i⟧' =
       (shiftFunctorCompIsoId C i (-i) (add_neg_self i)).Hom.app X ≫
@@ -520,6 +764,12 @@ theorem shift_shift_neg' (i : A) :
   (NatIso.naturality_2 (shiftFunctorCompIsoId C i (-i) (add_neg_self i)) f).symm
 #align category_theory.shift_shift_neg' CategoryTheory.shift_shift_neg'
 
+/- warning: category_theory.shift_neg_shift' -> CategoryTheory.shift_neg_shift' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) Y)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i) i (neg_add_self.{u3} A _inst_2 i))) X) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) Y)) f (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) i) i (neg_add_self.{u3} A _inst_2 i))) Y)))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i))) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i))) Y) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i) i (neg_add_self.{u1} A _inst_2 i))) X) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) Y (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i))) Y) f (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 i)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) i) i (neg_add_self.{u1} A _inst_2 i))) Y)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_neg_shift' CategoryTheory.shift_neg_shift'ₓ'. -/
 theorem shift_neg_shift' (i : A) :
     f⟦-i⟧'⟦i⟧' =
       (shiftFunctorCompIsoId C (-i) i (neg_add_self i)).Hom.app X ≫
@@ -527,6 +777,12 @@ theorem shift_neg_shift' (i : A) :
   (NatIso.naturality_2 (shiftFunctorCompIsoId C (-i) i (neg_add_self i)) f).symm
 #align category_theory.shift_neg_shift' CategoryTheory.shift_neg_shift'
 
+/- warning: category_theory.shift_equiv_triangle -> CategoryTheory.shift_equiv_triangle is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X)) (CategoryTheory.Iso.inv.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X)) X (CategoryTheory.shiftShiftNeg.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X n))) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.shiftNegShift.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) n))) (CategoryTheory.CategoryStruct.id.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X)) (CategoryTheory.Iso.inv.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X)) X (CategoryTheory.shiftShiftNeg.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X n))) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (CategoryTheory.shiftNegShift.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) n))) (CategoryTheory.CategoryStruct.id.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_equiv_triangle CategoryTheory.shift_equiv_triangleₓ'. -/
 theorem shift_equiv_triangle (n : A) (X : C) :
     (shiftShiftNeg X n).inv⟦n⟧' ≫ (shiftNegShift (X⟦n⟧) n).Hom = 𝟙 (X⟦n⟧) :=
   (shiftEquiv C n).functor_unitIso_comp X
@@ -534,6 +790,12 @@ theorem shift_equiv_triangle (n : A) (X : C) :
 
 section
 
+/- warning: category_theory.shift_shift_functor_comp_iso_id_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (m : A) (h : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) n m) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n m h)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m n (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Eq.ndrec.{0, succ u3} A n (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m _a) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m) (Eq.symm.{succ u3} A (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m) n (neg_eq_of_add_eq_zero_left.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2) n m h)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) m)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A _a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (add_right_neg.{u3} A _inst_2 m))) (rfl.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (m : A) (h : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) n m) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (NegZeroClass.toZero.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))))))) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n m h)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m n (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.ndrec.{0, succ u1} A n (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m _a) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m) (Eq.symm.{succ u1} A (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m) n (neg_eq_of_add_eq_zero_left.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2) n m h)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) m)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A _a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (add_right_neg.{u1} A _inst_2 m))) (Eq.refl.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
     (shiftFunctorCompIsoId C n m h).Hom.app X⟦n⟧' =
       (shiftFunctorCompIsoId C m n (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg])).Hom.app
@@ -546,6 +808,12 @@ theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
       (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg]) (by rw [h, zero_add]) X
 #align category_theory.shift_shift_functor_comp_iso_id_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_hom_app
 
+/- warning: category_theory.shift_shift_functor_comp_iso_id_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (m : A) (h : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) n m) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n m h)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 m n (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Eq.ndrec.{0, succ u3} A n (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m _a) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m n) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m) (Eq.symm.{succ u3} A (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m) n (neg_eq_of_add_eq_zero_left.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2) n m h)))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) m)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))) (Eq.{succ u3} A _a (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))) m (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (SubtractionMonoid.toSubNegMonoid.{u3} A (AddGroup.toSubtractionMonoid.{u3} A _inst_2))) m)) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))))) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))))))) (add_right_neg.{u3} A _inst_2 m))) (rfl.{succ u3} A (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)))))))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (m : A) (h : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) n m) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (NegZeroClass.toZero.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))))))) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m))) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n m h)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 m n (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.ndrec.{0, succ u1} A n (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m _a) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m n) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m) (Eq.symm.{succ u1} A (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m) n (neg_eq_of_add_eq_zero_left.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2) n m h)))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) m)) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))) (Eq.{succ u1} A _a (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) m (Neg.neg.{u1} A (SubNegMonoid.toNeg.{u1} A (SubtractionMonoid.toSubNegMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2))) m)) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))))) (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))))) (add_right_neg.{u1} A _inst_2 m))) (Eq.refl.{succ u1} A (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)))))))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
     (shiftFunctorCompIsoId C n m h).inv.app X⟦n⟧' =
       (shiftFunctorCompIsoId C m n (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg])).inv.app
@@ -556,24 +824,48 @@ theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
   rfl
 #align category_theory.shift_shift_functor_comp_iso_id_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_inv_app
 
+/- warning: category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) (add_neg_self.{u3} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) n (neg_add_self.{u3} A _inst_2 n))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) (add_neg_self.{u1} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) n (neg_add_self.{u1} A _inst_2 n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_add_neg_self_hom_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).Hom.app X⟦n⟧' =
       (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).Hom.app (X⟦n⟧) :=
   by apply shift_shift_functor_comp_iso_id_hom_app
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app
 
+/- warning: category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) (add_neg_self.{u3} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) n (neg_add_self.{u3} A _inst_2 n))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)))) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) (add_neg_self.{u1} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) n (neg_add_self.{u1} A _inst_2 n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_add_neg_self_inv_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app X⟦n⟧' =
       (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app (X⟦n⟧) :=
   by apply shift_shift_functor_comp_iso_id_inv_app
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app
 
+/- warning: category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app -> CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) n (neg_add_self.{u3} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) (add_neg_self.{u3} A _inst_2 n))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) n (neg_add_self.{u1} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) (add_neg_self.{u1} A _inst_2 n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_neg_add_self_hom_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).Hom.app X⟦-n⟧' =
       (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).Hom.app (X⟦-n⟧) :=
   by apply shift_shift_functor_comp_iso_id_hom_app
 #align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app
 
+/- warning: category_theory.shift_shift_functor_comp_iso_id_neg_add_self_inv_app -> CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] (n : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) X))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) n (neg_add_self.{u3} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n) (add_neg_self.{u3} A _inst_2 n))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 (Neg.neg.{u3} A (SubNegMonoid.toHasNeg.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) n)) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] (n : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n))) X))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) n (neg_add_self.{u1} A _inst_2 n))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorCompIsoId.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n) (add_neg_self.{u1} A _inst_2 n))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 (Neg.neg.{u1} A (NegZeroClass.toNeg.{u1} A (SubNegZeroMonoid.toNegZeroClass.{u1} A (SubtractionMonoid.toSubNegZeroMonoid.{u1} A (AddGroup.toSubtractionMonoid.{u1} A _inst_2)))) n))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_appₓ'. -/
 theorem shift_shiftFunctorCompIsoId_neg_add_self_inv_app (n : A) (X : C) :
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app X⟦-n⟧' =
       (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app (X⟦-n⟧) :=
@@ -588,6 +880,12 @@ open CategoryTheory.Limits
 
 variable [HasZeroMorphisms C]
 
+/- warning: category_theory.shift_zero_eq_zero -> CategoryTheory.shift_zero_eq_zero is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddGroup.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2))] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} C _inst_1] (X : C) (Y : C) (n : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X Y (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 _inst_4 X Y))))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 _inst_4 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (SubNegMonoid.toAddMonoid.{u3} A (AddGroup.toSubNegMonoid.{u3} A _inst_2)) _inst_3 n) Y)))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddGroup.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2))] [_inst_4 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} C _inst_1] (X : C) (Y : C) (n : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X Y (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u3} C _inst_1 _inst_4 X Y)))) (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) Y)) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) Y)) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, u3} C _inst_1 _inst_4 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (SubNegMonoid.toAddMonoid.{u1} A (AddGroup.toSubNegMonoid.{u1} A _inst_2)) _inst_3 n)) Y))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_zero_eq_zero CategoryTheory.shift_zero_eq_zeroₓ'. -/
 theorem shift_zero_eq_zero (X Y : C) (n : A) : (0 : X ⟶ Y)⟦n⟧' = (0 : X⟦n⟧ ⟶ Y⟦n⟧) :=
   CategoryTheory.Functor.map_zero _ _ _
 #align category_theory.shift_zero_eq_zero CategoryTheory.shift_zero_eq_zero
@@ -598,12 +896,20 @@ section AddCommMonoid
 
 variable (C) {A} [AddCommMonoid A] [HasShift C A]
 
+#print CategoryTheory.shiftFunctorComm /-
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
 def shiftFunctorComm (i j : A) :
     shiftFunctor C i ⋙ shiftFunctor C j ≅ shiftFunctor C j ⋙ shiftFunctor C i :=
   (shiftFunctorAdd C i j).symm ≪≫ shiftFunctorAdd' C j i (i + j) (add_comm j i)
 #align category_theory.shift_functor_comm CategoryTheory.shiftFunctorComm
+-/
 
+/- warning: category_theory.shift_functor_comm_eq -> CategoryTheory.shiftFunctorComm_eq is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (i : A) (j : A) (k : A) (h : Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) i j) k), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i))) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i j) (CategoryTheory.Iso.trans.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 k) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 k) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i j k h)) (CategoryTheory.shiftFunctorAdd'.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j i k (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) j i) k) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) j i) k) (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) j i) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) j i) k) (Eq.{succ u3} A _a k)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) j i) k)) (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) (add_comm.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2) j i))) (Eq.mpr.{0} (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k) (Eq.{succ u3} A k k) (id_tag Tactic.IdTag.rw (Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k) (Eq.{succ u3} A k k)) (Eq.ndrec.{0, succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) i j) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k) (Eq.{succ u3} A _a k)) (rfl.{1} Prop (Eq.{succ u3} A (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddSemigroup.toHasAdd.{u3} A (AddCommSemigroup.toAddSemigroup.{u3} A (AddCommMonoid.toAddCommSemigroup.{u3} A _inst_2)))) i j) k)) k h)) (rfl.{succ u3} A k)))))
+but is expected to have type
+  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (i : A) (j : A) (k : A) (h : Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) i j) k), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i))) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j) (CategoryTheory.Iso.trans.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 k) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (CategoryTheory.Iso.symm.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 k) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i j k h)) (CategoryTheory.shiftFunctorAdd'.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j i k (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) j i) k) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) j i) k) (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) j i) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) j i) k) (Eq.{succ u1} A _a k)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) j i) k)) (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) (add_comm.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2) j i))) (Eq.mpr.{0} (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k) (Eq.{succ u1} A k k) (id.{0} (Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k) (Eq.{succ u1} A k k)) (Eq.ndrec.{0, succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) i j) (fun (_a : A) => Eq.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k) (Eq.{succ u1} A _a k)) (Eq.refl.{1} Prop (Eq.{succ u1} A (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddSemigroup.toAdd.{u1} A (AddCommSemigroup.toAddSemigroup.{u1} A (AddCommMonoid.toAddCommSemigroup.{u1} A _inst_2)))) i j) k)) k h)) (Eq.refl.{succ u1} A k)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_eq CategoryTheory.shiftFunctorComm_eqₓ'. -/
 theorem shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
     shiftFunctorComm C i j =
       (shiftFunctorAdd' C i j k h).symm ≪≫ shiftFunctorAdd' C j i k (by rw [add_comm j i, h]) :=
@@ -613,6 +919,12 @@ theorem shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
   rfl
 #align category_theory.shift_functor_comm_eq CategoryTheory.shiftFunctorComm_eq
 
+/- warning: category_theory.shift_functor_comm_symm -> CategoryTheory.shiftFunctorComm_symm is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u2}) {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (i : A) (j : A), Eq.{succ (max u2 u1)} (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j))) (CategoryTheory.Iso.symm.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 i j)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 j i)
+but is expected to have type
+  forall (C : Type.{u3}) {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (i : A) (j : A), Eq.{max (succ u3) (succ u2)} (CategoryTheory.Iso.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j))) (CategoryTheory.Iso.symm.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 i j)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 j i)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_symm CategoryTheory.shiftFunctorComm_symmₓ'. -/
 theorem shiftFunctorComm_symm (i j : A) : (shiftFunctorComm C i j).symm = shiftFunctorComm C j i :=
   by
   ext1
@@ -623,11 +935,23 @@ theorem shiftFunctorComm_symm (i j : A) : (shiftFunctorComm C i j).symm = shiftF
 
 variable {C} (X Y : C) (f : X ⟶ Y)
 
+/- warning: category_theory.shift_comm -> CategoryTheory.shiftComm is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (X : C) (i : A) (j : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X))
+but is expected to have type
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (X : C) (i : A) (j : A), CategoryTheory.Iso.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm CategoryTheory.shiftCommₓ'. -/
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
 abbrev shiftComm (i j : A) : X⟦i⟧⟦j⟧ ≅ X⟦j⟧⟦i⟧ :=
   (shiftFunctorComm C i j).app X
 #align category_theory.shift_comm CategoryTheory.shiftComm
 
+/- warning: category_theory.shift_comm_symm -> CategoryTheory.shiftComm_symm is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (X : C) (i : A) (j : A), Eq.{succ u1} (CategoryTheory.Iso.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X))) (CategoryTheory.Iso.symm.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X j i)
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (X : C) (i : A) (j : A), Eq.{succ u2} (CategoryTheory.Iso.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X))) (CategoryTheory.Iso.symm.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X j i)
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm_symm CategoryTheory.shiftComm_symmₓ'. -/
 @[simp]
 theorem shiftComm_symm (i j : A) : (shiftComm X i j).symm = shiftComm X j i :=
   by
@@ -637,6 +961,12 @@ theorem shiftComm_symm (i j : A) : (shiftComm X i j).symm = shiftComm X j i :=
 
 variable {X Y}
 
+/- warning: category_theory.shift_comm' -> CategoryTheory.shift_comm' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X Y f)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X Y f)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y j i))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y))) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X Y f)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X Y f)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y j i))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm' CategoryTheory.shift_comm'ₓ'. -/
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
 theorem shift_comm' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftComm _ _ _).Hom ≫ f⟦j⟧'⟦i⟧' ≫ (shiftComm _ _ _).Hom :=
@@ -646,12 +976,24 @@ theorem shift_comm' (i j : A) :
   rfl
 #align category_theory.shift_comm' CategoryTheory.shift_comm'
 
+/- warning: category_theory.shift_comm_hom_comp -> CategoryTheory.shiftComm_hom_comp is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 X i j)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) X Y f))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) X Y f)) (CategoryTheory.Iso.hom.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) Y)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 i) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 j) Y)) (CategoryTheory.shiftComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 Y i j)))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} {Y : C} (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) X Y) (i : A) (j : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 X i j)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) X Y f))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) X Y f)) (CategoryTheory.Iso.hom.{u2, u3} C _inst_1 (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 i)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 j)) Y)) (CategoryTheory.shiftComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 Y i j)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_compₓ'. -/
 @[reassoc.1]
 theorem shiftComm_hom_comp (i j : A) :
     (shiftComm X i j).Hom ≫ f⟦j⟧'⟦i⟧' = f⟦i⟧'⟦j⟧' ≫ (shiftComm Y i j).Hom := by
   rw [shift_comm', ← shift_comm_symm, iso.symm_hom, iso.inv_hom_id_assoc]
 #align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_comp
 
+/- warning: category_theory.shift_functor_zero_hom_app_shift -> CategoryTheory.shiftFunctorZero_hom_app_shift is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} (n : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) X) X (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3)) X)))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} (n : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X))) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3)) X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_zero_hom_app_shift CategoryTheory.shiftFunctorZero_hom_app_shiftₓ'. -/
 theorem shiftFunctorZero_hom_app_shift (n : A) :
     (shiftFunctorZero C A).Hom.app (X⟦n⟧) =
       (shiftFunctorComm C n 0).Hom.app X ≫ (shiftFunctorZero C A).Hom.app X⟦n⟧' :=
@@ -661,6 +1003,12 @@ theorem shiftFunctorZero_hom_app_shift (n : A) :
   rw [category.assoc, iso.hom_inv_id_app, category.comp_id, shift_functor_add'_add_zero_inv_app]
 #align category_theory.shift_functor_zero_hom_app_shift CategoryTheory.shiftFunctorZero_hom_app_shift
 
+/- warning: category_theory.shift_functor_zero_inv_app_shift -> CategoryTheory.shiftFunctorZero_inv_app_shift is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] {X : C} (n : A), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X))) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) X (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.shiftFunctorZero.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2))))))) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 n)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 n (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))))))) X))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] {X : C} (n : A), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X))) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1)) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.Functor.id.{u2, u3} C _inst_1) (CategoryTheory.shiftFunctorZero.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (CategoryTheory.Iso.inv.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2))))) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 n)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 n (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_zero_inv_app_shift CategoryTheory.shiftFunctorZero_inv_app_shiftₓ'. -/
 theorem shiftFunctorZero_inv_app_shift (n : A) :
     (shiftFunctorZero C A).inv.app (X⟦n⟧) =
       (shiftFunctorZero C A).inv.app X⟦n⟧' ≫ (shiftFunctorComm C n 0).inv.app X :=
@@ -672,6 +1020,12 @@ theorem shiftFunctorZero_inv_app_shift (n : A) :
   rw [Functor.map_id]
 #align category_theory.shift_functor_zero_inv_app_shift CategoryTheory.shiftFunctorZero_inv_app_shift
 
+/- warning: category_theory.shift_functor_comm_hom_app_comp_shift_shift_functor_add_hom_app -> CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : AddCommMonoid.{u3} A] [_inst_3 : CategoryTheory.HasShift.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2)] (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 m₁ (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) X) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂ m₃)) X))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) X)) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) X)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u1, u2, u3} C A _inst_1 _inst_2 _inst_3 m₁ m₃)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u1, u2, u3} C A _inst_1 (AddCommMonoid.toAddMonoid.{u3} A _inst_2) _inst_3 m₂) X))))
+but is expected to have type
+  forall {C : Type.{u3}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : AddCommMonoid.{u1} A] [_inst_3 : CategoryTheory.HasShift.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2)] (m₁ : A) (m₂ : A) (m₃ : A) (X : C), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) X) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) X) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂ m₃)) X))) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddCommMonoid.toAddMonoid.{u1} A _inst_2)))) m₂ m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.shiftFunctorAdd.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (CategoryTheory.CategoryStruct.comp.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X)) (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) X)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁))) X) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ m₂)) X)) (CategoryTheory.NatTrans.app.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.Iso.hom.{max u3 u2, max u3 u2} (CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u2, u2, u3, u3} C _inst_1 C _inst_1) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃)) (CategoryTheory.Functor.comp.{u2, u2, u2, u3, u3, u3} C _inst_1 C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₃) (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₁)) (CategoryTheory.shiftFunctorComm.{u2, u3, u1} C A _inst_1 _inst_2 _inst_3 m₁ m₃)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u3, u1} C A _inst_1 (AddCommMonoid.toAddMonoid.{u1} A _inst_2) _inst_3 m₂)) X))))
+Case conversion may be inaccurate. Consider using '#align category_theory.shift_functor_comm_hom_app_comp_shift_shift_functor_add_hom_app CategoryTheory.shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_appₓ'. -/
 @[reassoc.1]
 theorem shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m₃ : A) (X : C) :
     (shiftFunctorComm C m₁ (m₂ + m₃)).Hom.app X ≫ (shiftFunctorAdd C m₂ m₃).Hom.app X⟦m₁⟧' =
@@ -708,34 +1062,58 @@ variable (s : A → C ⥤ C) (i : ∀ i, s i ⋙ F ≅ F ⋙ shiftFunctor D i)
 
 include F s i
 
+/- warning: category_theory.has_shift_of_fully_faithful_zero -> CategoryTheory.hasShiftOfFullyFaithful_zero is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)), (forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) -> (CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1))
+but is expected to have type
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)), (forall (i : A), CategoryTheory.Iso.{max u2 u5, max (max (max u4 u2) u5) u1} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) -> (CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (AddMonoid.toZero.{u3} A _inst_3)))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1))
+Case conversion may be inaccurate. Consider using '#align category_theory.has_shift_of_fully_faithful_zero CategoryTheory.hasShiftOfFullyFaithful_zeroₓ'. -/
 /-- auxiliary definition for `has_shift_of_fully_faithful` -/
-def hasShiftOfFullyFaithfulZero : s 0 ≅ 𝟭 C :=
+def hasShiftOfFullyFaithful_zero : s 0 ≅ 𝟭 C :=
   natIsoOfCompFullyFaithful F
     (i 0 ≪≫
       isoWhiskerLeft F (shiftFunctorZero D A) ≪≫
         Functor.rightUnitor _ ≪≫ (Functor.leftUnitor _).symm)
-#align category_theory.has_shift_of_fully_faithful_zero CategoryTheory.hasShiftOfFullyFaithfulZero
-
+#align category_theory.has_shift_of_fully_faithful_zero CategoryTheory.hasShiftOfFullyFaithful_zero
+
+/- warning: category_theory.map_has_shift_of_fully_faithful_zero_hom_app -> CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.map.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.hasShiftOfFullyFaithful_zero.{u1, u2, u3, u4, u5} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) X) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) (CategoryTheory.Iso.hom.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) (i (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) X) (CategoryTheory.NatTrans.app.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u5, u4} D _inst_2) (CategoryTheory.Iso.hom.{max u4 u5, max u5 u4} (CategoryTheory.Functor.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u5, u4} D _inst_2) (CategoryTheory.shiftFunctorZero.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)))
+but is expected to have type
+  forall {C : Type.{u5}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u5} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u3, u2} D] [_inst_3 : AddMonoid.{u1} A] [_inst_4 : CategoryTheory.HasShift.{u3, u2, u1} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u5 u3, max (max (max u2 u5) u3) u4} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 i))) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1)) X))) (Prefunctor.map.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1)) X) (CategoryTheory.NatTrans.app.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u4, u5} C _inst_1) (CategoryTheory.Iso.hom.{max u5 u4, max u5 u4} (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u4, u4, u5, u5} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u4, u5} C _inst_1) (CategoryTheory.hasShiftOfFullyFaithful_zero.{u4, u5, u1, u2, u3} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F)) X) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))))) X) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (CategoryTheory.Iso.hom.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (i (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X) (CategoryTheory.NatTrans.app.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u3, u2} D _inst_2) (CategoryTheory.Iso.hom.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u3, u2} D _inst_2) (CategoryTheory.shiftFunctorZero.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_appₓ'. -/
 @[simp]
-theorem map_hasShiftOfFullyFaithfulZero_hom_app (X : C) :
-    F.map ((hasShiftOfFullyFaithfulZero F s i).Hom.app X) =
+theorem map_hasShiftOfFullyFaithful_zero_hom_app (X : C) :
+    F.map ((hasShiftOfFullyFaithful_zero F s i).Hom.app X) =
       (i 0).Hom.app X ≫ (shiftFunctorZero D A).Hom.app (F.obj X) :=
   by
   dsimp [has_shift_of_fully_faithful_zero]
   simp
-#align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithfulZero_hom_app
-
+#align category_theory.map_has_shift_of_fully_faithful_zero_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_hom_app
+
+/- warning: category_theory.map_has_shift_of_fully_faithful_zero_inv_app -> CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X))) (CategoryTheory.Functor.map.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.hasShiftOfFullyFaithful_zero.{u1, u2, u3, u4, u5} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X)) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) X))) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) X)) (CategoryTheory.NatTrans.app.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u5, u4} D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Iso.inv.{max u4 u5, max u5 u4} (CategoryTheory.Functor.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) (CategoryTheory.Functor.id.{u5, u4} D _inst_2) (CategoryTheory.shiftFunctorZero.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) F) (CategoryTheory.Iso.inv.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3)))))) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) (i (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))))))) X))
+but is expected to have type
+  forall {C : Type.{u5}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u5} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u3, u2} D] [_inst_3 : AddMonoid.{u1} A] [_inst_4 : CategoryTheory.HasShift.{u3, u2, u1} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u5 u3, max (max (max u2 u5) u3) u4} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 i))) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X))) (Prefunctor.map.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1)) X) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X) (CategoryTheory.NatTrans.app.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u4, u5} C _inst_1) (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Iso.inv.{max u5 u4, max u5 u4} (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u4, u4, u5, u5} C _inst_1 C _inst_1) (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u4, u5} C _inst_1) (CategoryTheory.hasShiftOfFullyFaithful_zero.{u4, u5, u1, u2, u3} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F)) X) (CategoryTheory.NatTrans.app.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u3, u2} D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Iso.inv.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) (CategoryTheory.Functor.id.{u3, u2} D _inst_2) (CategoryTheory.shiftFunctorZero.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F) (CategoryTheory.Iso.inv.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3)))) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) (i (OfNat.ofNat.{u1} A 0 (Zero.toOfNat0.{u1} A (AddMonoid.toZero.{u1} A _inst_3))))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_zero_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_appₓ'. -/
 @[simp]
-theorem map_hasShiftOfFullyFaithfulZero_inv_app (X : C) :
-    F.map ((hasShiftOfFullyFaithfulZero F s i).inv.app X) =
+theorem map_hasShiftOfFullyFaithful_zero_inv_app (X : C) :
+    F.map ((hasShiftOfFullyFaithful_zero F s i).inv.app X) =
       (shiftFunctorZero D A).inv.app (F.obj X) ≫ (i 0).inv.app X :=
   by
   dsimp [has_shift_of_fully_faithful_zero]
   simp
-#align category_theory.map_has_shift_of_fully_faithful_zero_inv_app CategoryTheory.map_hasShiftOfFullyFaithfulZero_inv_app
-
+#align category_theory.map_has_shift_of_fully_faithful_zero_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_zero_inv_app
+
+/- warning: category_theory.has_shift_of_fully_faithful_add -> CategoryTheory.hasShiftOfFullyFaithful_add is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)), (forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) -> (forall (a : A) (b : A), CategoryTheory.Iso.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)))
+but is expected to have type
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)), (forall (i : A), CategoryTheory.Iso.{max u2 u5, max (max (max u4 u2) u5) u1} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) -> (forall (a : A) (b : A), CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)))
+Case conversion may be inaccurate. Consider using '#align category_theory.has_shift_of_fully_faithful_add CategoryTheory.hasShiftOfFullyFaithful_addₓ'. -/
 /-- auxiliary definition for `has_shift_of_fully_faithful` -/
-def hasShiftOfFullyFaithfulAdd (a b : A) : s (a + b) ≅ s a ⋙ s b :=
+def hasShiftOfFullyFaithful_add (a b : A) : s (a + b) ≅ s a ⋙ s b :=
   natIsoOfCompFullyFaithful F
     (i (a + b) ≪≫
       isoWhiskerLeft _ (shiftFunctorAdd D a b) ≪≫
@@ -743,36 +1121,49 @@ def hasShiftOfFullyFaithfulAdd (a b : A) : s (a + b) ≅ s a ⋙ s b :=
           isoWhiskerRight (i a).symm _ ≪≫
             Functor.associator _ _ _ ≪≫
               isoWhiskerLeft _ (i b).symm ≪≫ (Functor.associator _ _ _).symm)
-#align category_theory.has_shift_of_fully_faithful_add CategoryTheory.hasShiftOfFullyFaithfulAdd
-
+#align category_theory.has_shift_of_fully_faithful_add CategoryTheory.hasShiftOfFullyFaithful_add
+
+/- warning: category_theory.map_has_shift_of_fully_faithful_add_hom_app -> CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) (a : A) (b : A) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X))) (CategoryTheory.Functor.map.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.Iso.hom.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.hasShiftOfFullyFaithful_add.{u1, u2, u3, u4, u5} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i a b)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) X) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) (CategoryTheory.Iso.hom.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) (i (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) X) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) X) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.NatTrans.app.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Iso.hom.{max u4 u5, max u5 u4} (CategoryTheory.Functor.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctorAdd.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.Functor.map.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) X) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Iso.inv.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) (i a)) X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Iso.inv.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (i b)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)))))
+but is expected to have type
+  forall {C : Type.{u5}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u5} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u3, u2} D] [_inst_3 : AddMonoid.{u1} A] [_inst_4 : CategoryTheory.HasShift.{u3, u2, u1} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u5 u3, max (max (max u2 u5) u3) u4} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 i))) (a : A) (b : A) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b))) X))) (Prefunctor.map.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b))) X) (CategoryTheory.NatTrans.app.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.Iso.hom.{max u5 u4, max u5 u4} (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u4, u4, u5, u5} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.hasShiftOfFullyFaithful_add.{u4, u5, u1, u2, u3} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i a b)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F)) X) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)))) X) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (CategoryTheory.Iso.hom.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (i (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)))) X) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b))) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (CategoryTheory.NatTrans.app.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Iso.hom.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctorAdd.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b))) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.map.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F)) X) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Iso.inv.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (i a)) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Iso.inv.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (i b)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_appₓ'. -/
 @[simp]
-theorem map_hasShiftOfFullyFaithfulAdd_hom_app (a b : A) (X : C) :
-    F.map ((hasShiftOfFullyFaithfulAdd F s i a b).Hom.app X) =
+theorem map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
+    F.map ((hasShiftOfFullyFaithful_add F s i a b).Hom.app X) =
       (i (a + b)).Hom.app X ≫
         (shiftFunctorAdd D a b).Hom.app (F.obj X) ≫
           (i a).inv.app X⟦b⟧' ≫ (i b).inv.app ((s a).obj X) :=
   by
   dsimp [has_shift_of_fully_faithful_add]
   simp
-#align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithfulAdd_hom_app
-
+#align category_theory.map_has_shift_of_fully_faithful_add_hom_app CategoryTheory.map_hasShiftOfFullyFaithful_add_hom_app
+
+/- warning: category_theory.map_has_shift_of_fully_faithful_add_inv_app -> CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {A : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u5, u4} D] [_inst_3 : AddMonoid.{u3} A] [_inst_4 : CategoryTheory.HasShift.{u5, u4, u3} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u1, u5, u2, u4} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 i))) (a : A) (b : A) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X))) (CategoryTheory.Functor.map.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X) (CategoryTheory.NatTrans.app.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Iso.inv.{max u2 u1, max u1 u2} (CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u1, u1, u2, u2} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.hasShiftOfFullyFaithful_add.{u1, u2, u3, u4, u5} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i a b)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u1, u1, u2, u2, u2} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Iso.hom.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (i b)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.Functor.map.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s a) X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) X) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) (CategoryTheory.Iso.hom.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) (i a)) X)) (CategoryTheory.CategoryStruct.comp.{u5, u4} D (CategoryTheory.Category.toCategoryStruct.{u5, u4} D _inst_2) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a)) X)) (CategoryTheory.Functor.obj.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) X)) (CategoryTheory.NatTrans.app.{u5, u5, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Iso.inv.{max u4 u5, max u5 u4} (CategoryTheory.Functor.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u5, u5, u4, u4} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u5, u5, u5, u4, u4, u4} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctorAdd.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 a b)) (CategoryTheory.Functor.obj.{u1, u5, u2, u4} C _inst_1 D _inst_2 F X)) (CategoryTheory.NatTrans.app.{u1, u5, u2, u4} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) F) (CategoryTheory.Iso.inv.{max u2 u5, max u1 u5 u2 u4} (CategoryTheory.Functor.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u5, u2, u4} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u1, u1, u5, u2, u2, u4} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u1, u5, u5, u2, u4, u4} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u5, u4, u3} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) (i (HAdd.hAdd.{u3, u3, u3} A A A (instHAdd.{u3} A (AddZeroClass.toHasAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A _inst_3))) a b))) X))))
+but is expected to have type
+  forall {C : Type.{u5}} {A : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u5} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u3, u2} D] [_inst_3 : AddMonoid.{u1} A] [_inst_4 : CategoryTheory.HasShift.{u3, u2, u1} D A _inst_2 _inst_3] (F : CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) [_inst_5 : CategoryTheory.Full.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] [_inst_6 : CategoryTheory.Faithful.{u4, u3, u5, u2} C _inst_1 D _inst_2 F] (s : A -> (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1)) (i : forall (i : A), CategoryTheory.Iso.{max u5 u3, max (max (max u2 u5) u3) u4} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s i) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 i))) (a : A) (b : A) (X : C), Eq.{succ u3} (Quiver.Hom.{succ u3, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b))) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X))) (Prefunctor.map.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b))) X) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X) (CategoryTheory.NatTrans.app.{u4, u4, u5, u5} C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Iso.inv.{max u5 u4, max u5 u4} (CategoryTheory.Functor.{u4, u4, u5, u5} C _inst_1 C _inst_1) (CategoryTheory.Functor.category.{u4, u4, u5, u5} C _inst_1 C _inst_1) (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u4, u4, u4, u5, u5, u5} C _inst_1 C _inst_1 C _inst_1 (s a) (s b)) (CategoryTheory.hasShiftOfFullyFaithful_add.{u4, u5, u1, u2, u3} C A _inst_1 D _inst_2 _inst_3 _inst_4 F _inst_5 _inst_6 s i a b)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b))) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F)) X) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.Iso.hom.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s b) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (i b)) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b))) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a))) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F)) X) (Prefunctor.map.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) (Prefunctor.obj.{succ u4, succ u4, u5, u5} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, u5, u5} C _inst_1 C _inst_1 (s a)) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a))) X) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (CategoryTheory.Iso.hom.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s a) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a)) (i a)) X)) (CategoryTheory.CategoryStruct.comp.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a))) X)) (Prefunctor.obj.{succ u3, succ u3, u2, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F)) X) (CategoryTheory.NatTrans.app.{u3, u3, u2, u2} D _inst_2 D _inst_2 (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Iso.inv.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.Functor.category.{u3, u3, u2, u2} D _inst_2 D _inst_2) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) (CategoryTheory.Functor.comp.{u3, u3, u3, u2, u2, u2} D _inst_2 D _inst_2 D _inst_2 (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a) (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 b)) (CategoryTheory.shiftFunctorAdd.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 a b)) (Prefunctor.obj.{succ u4, succ u3, u5, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u4, u5} C (CategoryTheory.Category.toCategoryStruct.{u4, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u3, u2} D (CategoryTheory.Category.toCategoryStruct.{u3, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u3, u5, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.NatTrans.app.{u4, u3, u5, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F) (CategoryTheory.Iso.inv.{max u5 u3, max (max (max u5 u4) u2) u3} (CategoryTheory.Functor.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u5, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u4, u4, u3, u5, u5, u2} C _inst_1 C _inst_1 D _inst_2 (s (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b)) F) (CategoryTheory.Functor.comp.{u4, u3, u3, u5, u2, u2} C _inst_1 D _inst_2 D _inst_2 F (CategoryTheory.shiftFunctor.{u3, u2, u1} D A _inst_2 _inst_3 _inst_4 (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) (i (HAdd.hAdd.{u1, u1, u1} A A A (instHAdd.{u1} A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A _inst_3))) a b))) X))))
+Case conversion may be inaccurate. Consider using '#align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_appₓ'. -/
 @[simp]
-theorem map_hasShiftOfFullyFaithfulAdd_inv_app (a b : A) (X : C) :
-    F.map ((hasShiftOfFullyFaithfulAdd F s i a b).inv.app X) =
+theorem map_hasShiftOfFullyFaithful_add_inv_app (a b : A) (X : C) :
+    F.map ((hasShiftOfFullyFaithful_add F s i a b).inv.app X) =
       (i b).Hom.app ((s a).obj X) ≫
         (i a).Hom.app X⟦b⟧' ≫ (shiftFunctorAdd D a b).inv.app (F.obj X) ≫ (i (a + b)).inv.app X :=
   by
   dsimp [has_shift_of_fully_faithful_add]
   simp
-#align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithfulAdd_inv_app
+#align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app
 
+#print CategoryTheory.hasShiftOfFullyFaithful /-
 /-- Given a family of endomorphisms of `C` which are interwined by a fully faithful `F : C ⥤ D`
 with shift functors on `D`, we can promote that family to shift functors on `C`. -/
 def hasShiftOfFullyFaithful : HasShift C A :=
   hasShiftMk C A
     { f := s
-      zero := hasShiftOfFullyFaithfulZero F s i
-      add := hasShiftOfFullyFaithfulAdd F s i
+      zero := hasShiftOfFullyFaithful_zero F s i
+      add := hasShiftOfFullyFaithful_add F s i
       assoc_hom_app := fun m₁ m₂ m₃ X =>
         F.map_injective
           (by
@@ -811,6 +1202,7 @@ def hasShiftOfFullyFaithful : HasShift C A :=
             simpa [this, ← nat_trans.naturality_assoc, eq_to_hom_map,
               shift_functor_add_add_zero_hom_app] ) }
 #align category_theory.has_shift_of_fully_faithful CategoryTheory.hasShiftOfFullyFaithful
+-/
 
 end
 

Changes in mathlib4

mathlib3
mathlib4
chore: minor backports from nightly-testing (#12531)

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

Diff
@@ -389,6 +389,7 @@ abbrev shiftAdd (i j : A) : X⟦i + j⟧ ≅ X⟦i⟧⟦j⟧ :=
 theorem shift_shift' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftAdd X i j).inv ≫ f⟦i + j⟧' ≫ (shiftAdd Y i j).hom := by
   symm
+  rw [← Functor.comp_map, NatIso.app_inv]
   apply NatIso.naturality_1
 #align category_theory.shift_shift' CategoryTheory.shift_shift'
 
@@ -401,6 +402,7 @@ abbrev shiftZero : X⟦(0 : A)⟧ ≅ X :=
 
 theorem shiftZero' : f⟦(0 : A)⟧' = (shiftZero A X).hom ≫ f ≫ (shiftZero A Y).inv := by
   symm
+  rw [NatIso.app_inv, NatIso.app_hom]
   apply NatIso.naturality_2
 #align category_theory.shift_zero' CategoryTheory.shiftZero'
 
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
@@ -62,7 +62,7 @@ class HasShift (C : Type u) (A : Type*) [Category.{v} C] [AddMonoid A] where
   shift : MonoidalFunctor (Discrete A) (C ⥤ C)
 #align category_theory.has_shift CategoryTheory.HasShift
 
--- porting note (#10927): removed @[nolint has_nonempty_instance]
+-- porting note (#5171): removed @[nolint has_nonempty_instance]
 /-- A helper structure to construct the shift functor `(Discrete A) ⥤ (C ⥤ C)`. -/
 structure ShiftMkCore where
   /-- the family of shift functors -/
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
@@ -446,8 +446,8 @@ abbrev shiftEquiv (n : A) : C ≌ C := shiftEquiv' C n (-n) (add_neg_self n)
 variable (X Y : C) (f : X ⟶ Y)
 
 /-- Shifting by `i` is an equivalence. -/
-instance (i : A) : IsEquivalence (shiftFunctor C i) := by
-  change IsEquivalence (shiftEquiv C i).functor
+instance (i : A) : (shiftFunctor C i).IsEquivalence := by
+  change (shiftEquiv C i).functor.IsEquivalence
   infer_instance
 
 @[simp]
@@ -458,7 +458,7 @@ theorem shiftFunctor_inv (i : A) : (shiftFunctor C i).inv = shiftFunctor C (-i)
 section
 
 /-- Shifting by `n` is an essentially surjective functor. -/
-instance shiftFunctor_essSurj (i : A) : EssSurj (shiftFunctor C i) :=
+instance shiftFunctor_essSurj (i : A) : (shiftFunctor C i).EssSurj :=
   Equivalence.essSurj_of_equivalence _
 #align category_theory.shift_functor_ess_surj CategoryTheory.shiftFunctor_essSurj
 
@@ -670,7 +670,7 @@ lemma shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m
 end AddCommMonoid
 
 variable {D : Type*} [Category D] [AddMonoid A] [HasShift D A]
-variable (F : C ⥤ D) [Full F] [Faithful F]
+variable (F : C ⥤ D) [F.Full] [F.Faithful]
 
 section
 
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -557,7 +557,6 @@ end AddGroup
 section AddCommMonoid
 
 variable [AddCommMonoid A] [HasShift C A]
-
 variable (C)
 
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
@@ -589,7 +588,6 @@ lemma shiftFunctorComm_symm (i j : A) :
 #align category_theory.shift_functor_comm_symm CategoryTheory.shiftFunctorComm_symm
 
 variable {C}
-
 variable (X Y : C) (f : X ⟶ Y)
 
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
@@ -672,7 +670,6 @@ lemma shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m
 end AddCommMonoid
 
 variable {D : Type*} [Category D] [AddMonoid A] [HasShift D A]
-
 variable (F : C ⥤ D) [Full F] [Faithful F]
 
 section
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
@@ -62,7 +62,7 @@ class HasShift (C : Type u) (A : Type*) [Category.{v} C] [AddMonoid A] where
   shift : MonoidalFunctor (Discrete A) (C ⥤ C)
 #align category_theory.has_shift CategoryTheory.HasShift
 
--- porting note: removed @[nolint has_nonempty_instance]
+-- porting note (#10927): removed @[nolint has_nonempty_instance]
 /-- A helper structure to construct the shift functor `(Discrete A) ⥤ (C ⥤ C)`. -/
 structure ShiftMkCore where
   /-- the family of shift functors -/
refactor(CategoryTheory/Monoidal): split the naturality condition of monoidal functors (#9988)

Extracted from #6307. We replace μ_natural with μ_natural_left and μ_natural_right since we prefer to use the whiskerings to the tensor of morphisms in the refactor #6307.

Diff
@@ -129,8 +129,13 @@ def hasShiftMk (h : ShiftMkCore C A) : HasShift C A :=
   ⟨{ Discrete.functor h.F with
       ε := h.zero.inv
       μ := fun m n => (h.add m.as n.as).inv
-      μ_natural := by
-        rintro ⟨X⟩ ⟨Y⟩ ⟨X'⟩ ⟨Y'⟩ ⟨⟨⟨rfl⟩⟩⟩ ⟨⟨⟨rfl⟩⟩⟩
+      μ_natural_left := by
+        rintro ⟨X⟩ ⟨Y⟩ ⟨⟨⟨rfl⟩⟩⟩ ⟨X'⟩
+        ext
+        dsimp
+        simp
+      μ_natural_right := by
+        rintro ⟨X⟩ ⟨Y⟩ ⟨X'⟩ ⟨⟨⟨rfl⟩⟩⟩
         ext
         dsimp
         simp
chore: refactor of Algebra/Group/Defs to reduce imports (#9606)

We are not that far from the point that Algebra/Group/Defs depends on nothing significant besides simps and to_additive.

This removes from Mathlib.Algebra.Group.Defs the dependencies on

  • Mathlib.Tactic.Basic (which is a grab-bag of random stuff)
  • Mathlib.Init.Algebra.Classes (which is ancient and half-baked)
  • Mathlib.Logic.Function.Basic (not particularly important, but it is barely used in this file)

The goal is to avoid all unnecessary imports to set up the definitions of basic algebraic structures.

We also separate out Mathlib.Tactic.TypeStar and Mathlib.Tactic.Lemma as prerequisites to Mathlib.Tactic.Basic, but which can be imported separately when the rest of Mathlib.Tactic.Basic is not needed.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Johan Commelin, Andrew Yang
 -/
+import Mathlib.Algebra.Group.Basic
 import Mathlib.CategoryTheory.Limits.Preserves.Shapes.Zero
 import Mathlib.CategoryTheory.Monoidal.End
 import Mathlib.CategoryTheory.Monoidal.Discrete
chore: cleanup some spaces (#7484)

Purely cosmetic PR.

Diff
@@ -749,7 +749,7 @@ def hasShiftOfFullyFaithful :
         congr 1
         erw [(i n).hom.naturality]
         dsimp
-        simp )
+        simp)
       add_zero_hom_app := fun n X => F.map_injective (by
         have := dcongr_arg (fun a => (i a).hom.app X) (add_zero n)
         simp [this, ← NatTrans.naturality_assoc, eqToHom_map,
style: fix multiple spaces before colon (#7411)

Purely cosmetic PR

Diff
@@ -714,7 +714,7 @@ lemma map_hasShiftOfFullyFaithful_add_hom_app (a b : A) (X : C) :
 lemma map_hasShiftOfFullyFaithful_add_inv_app (a b : A) (X : C) :
     F.map ((hasShiftOfFullyFaithful_add F s i a b).inv.app X) =
       (i b).hom.app ((s a).obj X) ≫ ((i a).hom.app X)⟦b⟧' ≫
-        (shiftFunctorAdd D a b).inv.app (F.obj X) ≫ (i (a + b)).inv.app X  := by
+        (shiftFunctorAdd D a b).inv.app (F.obj X) ≫ (i (a + b)).inv.app X := by
   dsimp [hasShiftOfFullyFaithful_add]
   simp
 #align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app
chore: exactly 4 spaces in subsequent lines for def (#7321)

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

Diff
@@ -170,7 +170,7 @@ def shiftFunctorAdd (i j : A) : shiftFunctor C (i + j) ≅ shiftFunctor C i ⋙
 
 /-- When `k = i + j`, shifting by `k` is the same as shifting by `i` and then shifting by `j`. -/
 def shiftFunctorAdd' (i j k : A) (h : i + j = k) :
-  shiftFunctor C k ≅ shiftFunctor C i ⋙ shiftFunctor C j :=
+    shiftFunctor C k ≅ shiftFunctor C i ⋙ shiftFunctor C j :=
   eqToIso (by rw [h]) ≪≫ shiftFunctorAdd C i j
 #align category_theory.shift_functor_add' CategoryTheory.shiftFunctorAdd'
 
chore: only four spaces for subsequent lines (#7286)

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

Diff
@@ -91,7 +91,7 @@ attribute [reassoc] assoc_hom_app
 
 @[reassoc]
 lemma assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
-  (h.F m₃).map ((h.add m₁ m₂).inv.app X) ≫ (h.add (m₁ + m₂) m₃).inv.app X =
+    (h.F m₃).map ((h.add m₁ m₂).inv.app X) ≫ (h.add (m₁ + m₂) m₃).inv.app X =
     (h.add m₂ m₃).inv.app ((h.F m₁).obj X) ≫ (h.add m₁ (m₂ + m₃)).inv.app X ≫
       eqToHom (by rw [add_assoc]) := by
   rw [← cancel_mono ((h.add (m₁ + m₂) m₃).hom.app X ≫ (h.F m₃).map ((h.add m₁ m₂).hom.app X)),
@@ -175,7 +175,7 @@ def shiftFunctorAdd' (i j k : A) (h : i + j = k) :
 #align category_theory.shift_functor_add' CategoryTheory.shiftFunctorAdd'
 
 lemma shiftFunctorAdd'_eq_shiftFunctorAdd (i j : A) :
-  shiftFunctorAdd' C i j (i+j) rfl = shiftFunctorAdd C i j := by
+    shiftFunctorAdd' C i j (i+j) rfl = shiftFunctorAdd C i j := by
   ext1
   apply Category.id_comp
 #align category_theory.shift_functor_add'_eq_shift_functor_add CategoryTheory.shiftFunctorAdd'_eq_shiftFunctorAdd
@@ -228,7 +228,7 @@ notation f "⟦" n "⟧'" => (shiftFunctor _ n).map f
 variable (C)
 
 lemma shiftFunctorAdd'_zero_add (a : A) :
-  shiftFunctorAdd' C 0 a a (zero_add a) = (Functor.leftUnitor _).symm ≪≫
+    shiftFunctorAdd' C 0 a a (zero_add a) = (Functor.leftUnitor _).symm ≪≫
     isoWhiskerRight (shiftFunctorZero C A).symm (shiftFunctor C a) := by
   ext X
   dsimp [shiftFunctorAdd', shiftFunctorZero, shiftFunctor]
@@ -238,7 +238,7 @@ lemma shiftFunctorAdd'_zero_add (a : A) :
 #align category_theory.shift_functor_add'_zero_add CategoryTheory.shiftFunctorAdd'_zero_add
 
 lemma shiftFunctorAdd'_add_zero (a : A) :
-  shiftFunctorAdd' C a 0 a (add_zero a) = (Functor.rightUnitor _).symm ≪≫
+    shiftFunctorAdd' C a 0 a (add_zero a) = (Functor.rightUnitor _).symm ≪≫
     isoWhiskerLeft (shiftFunctor C a) (shiftFunctorZero C A).symm := by
   ext
   dsimp [shiftFunctorAdd', shiftFunctorZero, shiftFunctor]
@@ -280,49 +280,46 @@ lemma shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
 variable {C}
 
 lemma shiftFunctorAdd'_zero_add_hom_app (a : A) (X : C) :
-  (shiftFunctorAdd' C 0 a a (zero_add a)).hom.app X =
+    (shiftFunctorAdd' C 0 a a (zero_add a)).hom.app X =
     ((shiftFunctorZero C A).inv.app X)⟦a⟧' := by
   simpa using NatTrans.congr_app (congr_arg Iso.hom (shiftFunctorAdd'_zero_add C a)) X
 #align category_theory.shift_functor_add'_zero_add_hom_app CategoryTheory.shiftFunctorAdd'_zero_add_hom_app
 
 lemma shiftFunctorAdd_zero_add_hom_app (a : A) (X : C) :
-  (shiftFunctorAdd C 0 a).hom.app X =
+    (shiftFunctorAdd C 0 a).hom.app X =
     eqToHom (by dsimp; rw [zero_add]) ≫ ((shiftFunctorZero C A).inv.app X)⟦a⟧' := by
   simp [← shiftFunctorAdd'_zero_add_hom_app, shiftFunctorAdd']
 #align category_theory.shift_functor_add_zero_add_hom_app CategoryTheory.shiftFunctorAdd_zero_add_hom_app
 
 lemma shiftFunctorAdd'_zero_add_inv_app (a : A) (X : C) :
-  (shiftFunctorAdd' C 0 a a (zero_add a)).inv.app X =
+    (shiftFunctorAdd' C 0 a a (zero_add a)).inv.app X =
     ((shiftFunctorZero C A).hom.app X)⟦a⟧' := by
   simpa using NatTrans.congr_app (congr_arg Iso.inv (shiftFunctorAdd'_zero_add C a)) X
 #align category_theory.shift_functor_add'_zero_add_inv_app CategoryTheory.shiftFunctorAdd'_zero_add_inv_app
 
-lemma shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
-  (shiftFunctorAdd C 0 a).inv.app X =
+lemma shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) : (shiftFunctorAdd C 0 a).inv.app X =
     ((shiftFunctorZero C A).hom.app X)⟦a⟧' ≫ eqToHom (by dsimp; rw [zero_add]) := by
   simp [← shiftFunctorAdd'_zero_add_inv_app, shiftFunctorAdd']
 #align category_theory.shift_functor_add_zero_add_inv_app CategoryTheory.shiftFunctorAdd_zero_add_inv_app
 
 lemma shiftFunctorAdd'_add_zero_hom_app (a : A) (X : C) :
-  (shiftFunctorAdd' C a 0 a (add_zero a)).hom.app X =
+    (shiftFunctorAdd' C a 0 a (add_zero a)).hom.app X =
     (shiftFunctorZero C A).inv.app (X⟦a⟧) := by
   simpa using NatTrans.congr_app (congr_arg Iso.hom (shiftFunctorAdd'_add_zero C a)) X
 #align category_theory.shift_functor_add'_add_zero_hom_app CategoryTheory.shiftFunctorAdd'_add_zero_hom_app
 
-lemma shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
-  (shiftFunctorAdd C a 0).hom.app X =
+lemma shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) : (shiftFunctorAdd C a 0).hom.app X =
     eqToHom (by dsimp; rw [add_zero]) ≫ (shiftFunctorZero C A).inv.app (X⟦a⟧) := by
   simp [← shiftFunctorAdd'_add_zero_hom_app, shiftFunctorAdd']
 #align category_theory.shift_functor_add_add_zero_hom_app CategoryTheory.shiftFunctorAdd_add_zero_hom_app
 
 lemma shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
-  (shiftFunctorAdd' C a 0 a (add_zero a)).inv.app X =
+    (shiftFunctorAdd' C a 0 a (add_zero a)).inv.app X =
     (shiftFunctorZero C A).hom.app (X⟦a⟧) := by
   simpa using NatTrans.congr_app (congr_arg Iso.inv (shiftFunctorAdd'_add_zero C a)) X
 #align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_app
 
-lemma shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
-  (shiftFunctorAdd C a 0).inv.app X =
+lemma shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) : (shiftFunctorAdd C a 0).inv.app X =
     (shiftFunctorZero C A).hom.app (X⟦a⟧) ≫ eqToHom (by dsimp; rw [add_zero]) := by
   simp [← shiftFunctorAdd'_add_zero_inv_app, shiftFunctorAdd']
 #align category_theory.shift_functor_add_add_zero_inv_app CategoryTheory.shiftFunctorAdd_add_zero_inv_app
@@ -495,7 +492,7 @@ theorem shift_equiv_triangle (n : A) (X : C) :
 section
 
 theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
-  ((shiftFunctorCompIsoId C n m h).hom.app X)⟦n⟧' =
+    ((shiftFunctorCompIsoId C n m h).hom.app X)⟦n⟧' =
     (shiftFunctorCompIsoId C m n
       (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg])).hom.app (X⟦n⟧) := by
   dsimp [shiftFunctorCompIsoId]
@@ -506,7 +503,7 @@ theorem shift_shiftFunctorCompIsoId_hom_app (n m : A) (h : n + m = 0) (X : C) :
 #align category_theory.shift_shift_functor_comp_iso_id_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_hom_app
 
 theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
-  ((shiftFunctorCompIsoId C n m h).inv.app X)⟦n⟧' =
+    ((shiftFunctorCompIsoId C n m h).inv.app X)⟦n⟧' =
     ((shiftFunctorCompIsoId C m n
       (by rw [← neg_eq_of_add_eq_zero_left h, add_right_neg])).inv.app (X⟦n⟧)) := by
   rw [← cancel_mono (((shiftFunctorCompIsoId C n m h).hom.app X)⟦n⟧'),
@@ -516,25 +513,25 @@ theorem shift_shiftFunctorCompIsoId_inv_app (n m : A) (h : n + m = 0) (X : C) :
 #align category_theory.shift_shift_functor_comp_iso_id_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_inv_app
 
 theorem shift_shiftFunctorCompIsoId_add_neg_self_hom_app (n : A) (X : C) :
-  ((shiftFunctorCompIsoId C n (-n) (add_neg_self n)).hom.app X)⟦n⟧' =
+    ((shiftFunctorCompIsoId C n (-n) (add_neg_self n)).hom.app X)⟦n⟧' =
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).hom.app (X⟦n⟧) :=
   by apply shift_shiftFunctorCompIsoId_hom_app
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_hom_app
 
 theorem shift_shiftFunctorCompIsoId_add_neg_self_inv_app (n : A) (X : C) :
-  ((shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app X)⟦n⟧' =
+    ((shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app X)⟦n⟧' =
     (shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app (X⟦n⟧) :=
   by apply shift_shiftFunctorCompIsoId_inv_app
 #align category_theory.shift_shift_functor_comp_iso_id_add_neg_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_add_neg_self_inv_app
 
 theorem shift_shiftFunctorCompIsoId_neg_add_self_hom_app (n : A) (X : C) :
-  ((shiftFunctorCompIsoId C (-n) n (neg_add_self n)).hom.app X)⟦-n⟧' =
+    ((shiftFunctorCompIsoId C (-n) n (neg_add_self n)).hom.app X)⟦-n⟧' =
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).hom.app (X⟦-n⟧) :=
   by apply shift_shiftFunctorCompIsoId_hom_app
 #align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_hom_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_hom_app
 
 theorem shift_shiftFunctorCompIsoId_neg_add_self_inv_app (n : A) (X : C) :
-  ((shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app X)⟦-n⟧' =
+    ((shiftFunctorCompIsoId C (-n) n (neg_add_self n)).inv.app X)⟦-n⟧' =
     (shiftFunctorCompIsoId C n (-n) (add_neg_self n)).inv.app (X⟦-n⟧) :=
   by apply shift_shiftFunctorCompIsoId_inv_app
 #align category_theory.shift_shift_functor_comp_iso_id_neg_add_self_inv_app CategoryTheory.shift_shiftFunctorCompIsoId_neg_add_self_inv_app
@@ -617,7 +614,7 @@ theorem shiftComm_hom_comp (i j : A) :
 #align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_comp
 
 lemma shiftFunctorZero_hom_app_shift (n : A) :
-  (shiftFunctorZero C A).hom.app (X⟦n⟧) =
+    (shiftFunctorZero C A).hom.app (X⟦n⟧) =
     (shiftFunctorComm C n 0).hom.app X ≫ ((shiftFunctorZero C A).hom.app X)⟦n⟧' := by
   rw [← shiftFunctorAdd'_zero_add_inv_app n X, shiftFunctorComm_eq C n 0 n (add_zero n)]
   dsimp
@@ -625,7 +622,7 @@ lemma shiftFunctorZero_hom_app_shift (n : A) :
 #align category_theory.shift_functor_zero_hom_app_shift CategoryTheory.shiftFunctorZero_hom_app_shift
 
 lemma shiftFunctorZero_inv_app_shift (n : A) :
-  (shiftFunctorZero C A).inv.app (X⟦n⟧) =
+    (shiftFunctorZero C A).inv.app (X⟦n⟧) =
   ((shiftFunctorZero C A).inv.app X)⟦n⟧' ≫ (shiftFunctorComm C n 0).inv.app X := by
   rw [← cancel_mono ((shiftFunctorZero C A).hom.app (X⟦n⟧)), Category.assoc, Iso.inv_hom_id_app,
     shiftFunctorZero_hom_app_shift, Iso.inv_hom_id_app_assoc, ← Functor.map_comp,
@@ -642,7 +639,7 @@ lemma shiftFunctorComm_zero_hom_app (a : A) :
 
 @[reassoc]
 lemma shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m₃ : A) (X : C) :
-  (shiftFunctorComm C m₁ (m₂ + m₃)).hom.app X ≫
+    (shiftFunctorComm C m₁ (m₂ + m₃)).hom.app X ≫
     ((shiftFunctorAdd C m₂ m₃).hom.app X)⟦m₁⟧' =
   (shiftFunctorAdd C m₂ m₃).hom.app (X⟦m₁⟧) ≫
     ((shiftFunctorComm C m₁ m₂).hom.app X)⟦m₃⟧' ≫
feat: the shift on the category of triangles (#6688)

If a preadditive category C is equipped with a shift by the integers, then the category of triangles in C is also equipped with a shift.

Diff
@@ -572,8 +572,13 @@ lemma shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
   rfl
 #align category_theory.shift_functor_comm_eq CategoryTheory.shiftFunctorComm_eq
 
+@[simp]
+lemma shiftFunctorComm_eq_refl (i : A) :
+    shiftFunctorComm C i i = Iso.refl _ := by
+  rw [shiftFunctorComm_eq C i i (i + i) rfl, Iso.symm_self_id]
+
 lemma shiftFunctorComm_symm (i j : A) :
-  (shiftFunctorComm C i j).symm = shiftFunctorComm C j i := by
+    (shiftFunctorComm C i j).symm = shiftFunctorComm C j i := by
   ext1
   dsimp
   rw [shiftFunctorComm_eq C i j (i+j) rfl, shiftFunctorComm_eq C j i (i+j) (add_comm j i)]
@@ -629,6 +634,12 @@ lemma shiftFunctorZero_inv_app_shift (n : A) :
   rw [Functor.map_id]
 #align category_theory.shift_functor_zero_inv_app_shift CategoryTheory.shiftFunctorZero_inv_app_shift
 
+lemma shiftFunctorComm_zero_hom_app (a : A) :
+    (shiftFunctorComm C a 0).hom.app X =
+      (shiftFunctorZero C A).hom.app (X⟦a⟧) ≫ ((shiftFunctorZero C A).inv.app X)⟦a⟧' := by
+  simp only [shiftFunctorZero_hom_app_shift, Category.assoc, ← Functor.map_comp,
+    Iso.hom_inv_id_app, Functor.map_id, Functor.comp_obj, Category.comp_id]
+
 @[reassoc]
 lemma shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m₃ : A) (X : C) :
   (shiftFunctorComm C m₁ (m₂ + m₃)).hom.app X ≫
chore: remove unused simps (#6632)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -73,7 +73,7 @@ structure ShiftMkCore where
   /-- compatibility with the associativity -/
   assoc_hom_app : ∀ (m₁ m₂ m₃ : A) (X : C),
     (add (m₁ + m₂) m₃).hom.app X ≫ (F m₃).map ((add m₁ m₂).hom.app X) =
-      eqToHom (by dsimp; rw [add_assoc]) ≫ (add m₁ (m₂ + m₃)).hom.app X ≫
+      eqToHom (by rw [add_assoc]) ≫ (add m₁ (m₂ + m₃)).hom.app X ≫
         (add m₂ m₃).hom.app ((F m₁).obj X) := by aesop_cat
   /-- compatibility with the left addition with 0 -/
   zero_add_hom_app : ∀ (n : A) (X : C), (add 0 n).hom.app X =
@@ -93,7 +93,7 @@ attribute [reassoc] assoc_hom_app
 lemma assoc_inv_app (h : ShiftMkCore C A) (m₁ m₂ m₃ : A) (X : C) :
   (h.F m₃).map ((h.add m₁ m₂).inv.app X) ≫ (h.add (m₁ + m₂) m₃).inv.app X =
     (h.add m₂ m₃).inv.app ((h.F m₁).obj X) ≫ (h.add m₁ (m₂ + m₃)).inv.app X ≫
-      eqToHom (by dsimp; rw [add_assoc]) := by
+      eqToHom (by rw [add_assoc]) := by
   rw [← cancel_mono ((h.add (m₁ + m₂) m₃).hom.app X ≫ (h.F m₃).map ((h.add m₁ m₂).hom.app X)),
     Category.assoc, Category.assoc, Category.assoc, Iso.inv_hom_id_app_assoc, ← Functor.map_comp,
     Iso.inv_hom_id_app, Functor.map_id, h.assoc_hom_app, eqToHom_trans_assoc, eqToHom_refl,
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
@@ -44,7 +44,7 @@ noncomputable section
 
 universe v u
 
-variable (C : Type u) (A : Type _) [Category.{v} C]
+variable (C : Type u) (A : Type*) [Category.{v} C]
 
 attribute [local instance] endofunctorMonoidalCategory
 
@@ -56,7 +56,7 @@ variable (A C) [AddMonoid A]
 
 /-- A category has a shift indexed by an additive monoid `A`
 if there is a monoidal functor from `A` to `C ⥤ C`. -/
-class HasShift (C : Type u) (A : Type _) [Category.{v} C] [AddMonoid A] where
+class HasShift (C : Type u) (A : Type*) [Category.{v} C] [AddMonoid A] where
   /-- a shift is a monoidal functor from `A` to `C ⥤ C` -/
   shift : MonoidalFunctor (Discrete A) (C ⥤ C)
 #align category_theory.has_shift CategoryTheory.HasShift
@@ -657,7 +657,7 @@ lemma shiftFunctorComm_hom_app_comp_shift_shiftFunctorAdd_hom_app (m₁ m₂ m
 
 end AddCommMonoid
 
-variable {D : Type _} [Category D] [AddMonoid A] [HasShift D A]
+variable {D : Type*} [Category D] [AddMonoid A] [HasShift D A]
 
 variable (F : C ⥤ D) [Full F] [Faithful F]
 
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) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Johan Commelin, Andrew Yang
-
-! This file was ported from Lean 3 source module category_theory.shift.basic
-! leanprover-community/mathlib commit 6876fa15e3158ff3e4a4e2af1fb6e1945c6e8803
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Limits.Preserves.Shapes.Zero
 import Mathlib.CategoryTheory.Monoidal.End
 import Mathlib.CategoryTheory.Monoidal.Discrete
 
+#align_import category_theory.shift.basic from "leanprover-community/mathlib"@"6876fa15e3158ff3e4a4e2af1fb6e1945c6e8803"
+
 /-!
 # Shift
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

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

Diff
@@ -82,7 +82,7 @@ structure ShiftMkCore where
   zero_add_hom_app : ∀ (n : A) (X : C), (add 0 n).hom.app X =
     eqToHom (by dsimp; rw [zero_add]) ≫ (F n).map (zero.inv.app X) := by aesop_cat
   /-- compatibility with the right addition with 0 -/
-  add_zero_hom_app : ∀ (n : A)  (X : C), (add n 0).hom.app X =
+  add_zero_hom_app : ∀ (n : A) (X : C), (add n 0).hom.app X =
     eqToHom (by dsimp; rw [add_zero]) ≫ zero.inv.app ((F n).obj X) := by aesop_cat
 #align category_theory.shift_mk_core CategoryTheory.ShiftMkCore
 
@@ -253,7 +253,7 @@ lemma shiftFunctorAdd'_add_zero (a : A) :
 lemma shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A)
     (h₁₂ : a₁ + a₂ = a₁₂) (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) :
     shiftFunctorAdd' C a₁₂ a₃ a₁₂₃ (by rw [← h₁₂, h₁₂₃]) ≪≫
-      isoWhiskerRight (shiftFunctorAdd' C a₁ a₂ a₁₂ h₁₂) _ ≪≫ Functor.associator _ _ _  =
+      isoWhiskerRight (shiftFunctorAdd' C a₁ a₂ a₁₂ h₁₂) _ ≪≫ Functor.associator _ _ _ =
     shiftFunctorAdd' C a₁ a₂₃ a₁₂₃ (by rw [← h₂₃, ← add_assoc, h₁₂₃]) ≪≫
       isoWhiskerLeft _ (shiftFunctorAdd' C a₂ a₃ a₂₃ h₂₃) := by
   subst h₁₂ h₂₃ h₁₂₃
@@ -271,7 +271,7 @@ lemma shiftFunctorAdd'_assoc (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A)
 
 lemma shiftFunctorAdd_assoc (a₁ a₂ a₃ : A) :
     shiftFunctorAdd C (a₁ + a₂) a₃ ≪≫
-      isoWhiskerRight (shiftFunctorAdd C a₁ a₂) _ ≪≫ Functor.associator _ _ _  =
+      isoWhiskerRight (shiftFunctorAdd C a₁ a₂) _ ≪≫ Functor.associator _ _ _ =
     shiftFunctorAdd' C a₁ (a₂ + a₃) _ (add_assoc a₁ a₂ a₃).symm ≪≫
       isoWhiskerLeft _ (shiftFunctorAdd C a₂ a₃) := by
   ext X
feat: port CategoryTheory.Monad.EquivMon (#5086)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -144,12 +144,10 @@ def hasShiftMk (h : ShiftMkCore C A) : HasShift C A :=
         rintro ⟨n⟩
         ext X
         simp [endofunctorMonoidalCategory, h.zero_add_inv_app, ← Functor.map_comp]
-        rfl
       right_unitality := by
         rintro ⟨n⟩
         ext X
-        simp [endofunctorMonoidalCategory, h.add_zero_inv_app]
-        rfl }⟩
+        simp [endofunctorMonoidalCategory, h.add_zero_inv_app]}⟩
 #align category_theory.has_shift_mk CategoryTheory.hasShiftMk
 
 end
chore: fix grammar 2/3 (#5002)

Part 2 of #5001

Diff
@@ -24,7 +24,7 @@ would be the degree `i+n`-th term of `C`.
 ## Main definitions
 * `HasShift`: A typeclass asserting the existence of a shift functor.
 * `shiftEquiv`: When the indexing monoid is a group, then the functor indexed by `n` and `-n` forms
-  an self-equivalence of `C`.
+  a self-equivalence of `C`.
 * `shiftComm`: When the indexing monoid is commutative, then shifts commute as well.
 
 ## Implementation Notes
chore: fix many typos (#4983)

These are all doc fixes

Diff
@@ -716,7 +716,7 @@ lemma map_hasShiftOfFullyFaithful_add_inv_app (a b : A) (X : C) :
   simp
 #align category_theory.map_has_shift_of_fully_faithful_add_inv_app CategoryTheory.map_hasShiftOfFullyFaithful_add_inv_app
 
-/-- Given a family of endomorphisms of `C` which are interwined by a fully faithful `F : C ⥤ D`
+/-- Given a family of endomorphisms of `C` which are intertwined by a fully faithful `F : C ⥤ D`
 with shift functors on `D`, we can promote that family to shift functors on `C`. -/
 def hasShiftOfFullyFaithful :
     HasShift C A :=
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -308,25 +308,25 @@ lemma shiftFunctorAdd_zero_add_inv_app (a : A) (X : C) :
   simp [← shiftFunctorAdd'_zero_add_inv_app, shiftFunctorAdd']
 #align category_theory.shift_functor_add_zero_add_inv_app CategoryTheory.shiftFunctorAdd_zero_add_inv_app
 
-lemma shiftFunctorAdd'_add_zero_hom_app (a : A) (X : C):
+lemma shiftFunctorAdd'_add_zero_hom_app (a : A) (X : C) :
   (shiftFunctorAdd' C a 0 a (add_zero a)).hom.app X =
     (shiftFunctorZero C A).inv.app (X⟦a⟧) := by
   simpa using NatTrans.congr_app (congr_arg Iso.hom (shiftFunctorAdd'_add_zero C a)) X
 #align category_theory.shift_functor_add'_add_zero_hom_app CategoryTheory.shiftFunctorAdd'_add_zero_hom_app
 
-lemma shiftFunctorAdd_add_zero_hom_app (a : A) (X : C):
+lemma shiftFunctorAdd_add_zero_hom_app (a : A) (X : C) :
   (shiftFunctorAdd C a 0).hom.app X =
     eqToHom (by dsimp; rw [add_zero]) ≫ (shiftFunctorZero C A).inv.app (X⟦a⟧) := by
   simp [← shiftFunctorAdd'_add_zero_hom_app, shiftFunctorAdd']
 #align category_theory.shift_functor_add_add_zero_hom_app CategoryTheory.shiftFunctorAdd_add_zero_hom_app
 
-lemma shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C):
+lemma shiftFunctorAdd'_add_zero_inv_app (a : A) (X : C) :
   (shiftFunctorAdd' C a 0 a (add_zero a)).inv.app X =
     (shiftFunctorZero C A).hom.app (X⟦a⟧) := by
   simpa using NatTrans.congr_app (congr_arg Iso.inv (shiftFunctorAdd'_add_zero C a)) X
 #align category_theory.shift_functor_add'_add_zero_inv_app CategoryTheory.shiftFunctorAdd'_add_zero_inv_app
 
-lemma shiftFunctorAdd_add_zero_inv_app (a : A) (X : C):
+lemma shiftFunctorAdd_add_zero_inv_app (a : A) (X : C) :
   (shiftFunctorAdd C a 0).inv.app X =
     (shiftFunctorZero C A).hom.app (X⟦a⟧) ≫ eqToHom (by dsimp; rw [add_zero]) := by
   simp [← shiftFunctorAdd'_add_zero_inv_app, shiftFunctorAdd']
@@ -569,7 +569,7 @@ def shiftFunctorComm (i j : A) :
   (shiftFunctorAdd C i j).symm ≪≫ shiftFunctorAdd' C j i (i + j) (add_comm j i)
 #align category_theory.shift_functor_comm CategoryTheory.shiftFunctorComm
 
-lemma shiftFunctorComm_eq (i j k : A) (h : i + j = k):
+lemma shiftFunctorComm_eq (i j k : A) (h : i + j = k) :
     shiftFunctorComm C i j = (shiftFunctorAdd' C i j k h).symm ≪≫
       shiftFunctorAdd' C j i k (by rw [add_comm j i, h]) := by
   subst h
chore: fix many typos (#4967)

These are all doc fixes

Diff
@@ -30,7 +30,7 @@ would be the degree `i+n`-th term of `C`.
 ## Implementation Notes
 
 `[HasShift C A]` is implemented using `MonoidalFunctor (Discrete A) (C ⥤ C)`.
-However, the API of monodial functors is used only internally: one should use the API of
+However, the API of monoidal functors is used only internally: one should use the API of
 shifts functors which includes `shiftFunctor C a : C ⥤ C` for `a : A`,
 `shiftFunctorZero C A : shiftFunctor C (0 : A) ≅ 𝟭 C` and
 `shiftFunctorAdd C i j : shiftFunctor C (i + j) ≅ shiftFunctor C i ⋙ shiftFunctor C j`
feat: port CategoryTheory.GradedObject (#3342)
Diff
@@ -77,13 +77,13 @@ structure ShiftMkCore where
   assoc_hom_app : ∀ (m₁ m₂ m₃ : A) (X : C),
     (add (m₁ + m₂) m₃).hom.app X ≫ (F m₃).map ((add m₁ m₂).hom.app X) =
       eqToHom (by dsimp; rw [add_assoc]) ≫ (add m₁ (m₂ + m₃)).hom.app X ≫
-        (add m₂ m₃).hom.app ((F m₁).obj X)
+        (add m₂ m₃).hom.app ((F m₁).obj X) := by aesop_cat
   /-- compatibility with the left addition with 0 -/
   zero_add_hom_app : ∀ (n : A) (X : C), (add 0 n).hom.app X =
-    eqToHom (by dsimp; rw [zero_add]) ≫ (F n).map (zero.inv.app X)
+    eqToHom (by dsimp; rw [zero_add]) ≫ (F n).map (zero.inv.app X) := by aesop_cat
   /-- compatibility with the right addition with 0 -/
   add_zero_hom_app : ∀ (n : A)  (X : C), (add n 0).hom.app X =
-    eqToHom (by dsimp; rw [add_zero]) ≫ zero.inv.app ((F n).obj X)
+    eqToHom (by dsimp; rw [add_zero]) ≫ zero.inv.app ((F n).obj X) := by aesop_cat
 #align category_theory.shift_mk_core CategoryTheory.ShiftMkCore
 
 namespace ShiftMkCore
chore: tidy various files (#3358)
Diff
@@ -401,10 +401,10 @@ abbrev shiftZero : X⟦(0 : A)⟧ ≅ X :=
   (shiftFunctorZero C A).app _
 #align category_theory.shift_zero CategoryTheory.shiftZero
 
-theorem shift_zero' : f⟦(0 : A)⟧' = (shiftZero A X).hom ≫ f ≫ (shiftZero A Y).inv := by
+theorem shiftZero' : f⟦(0 : A)⟧' = (shiftZero A X).hom ≫ f ≫ (shiftZero A Y).inv := by
   symm
   apply NatIso.naturality_2
-#align category_theory.shift_zero' CategoryTheory.shift_zero'
+#align category_theory.shift_zero' CategoryTheory.shiftZero'
 
 variable (C) {A}
 
@@ -603,17 +603,17 @@ theorem shiftComm_symm (i j : A) : (shiftComm X i j).symm = shiftComm X j i := b
 variable {X Y}
 
 /-- When shifts are indexed by an additive commutative monoid, then shifts commute. -/
-theorem shift_comm' (i j : A) :
+theorem shiftComm' (i j : A) :
     f⟦i⟧'⟦j⟧' = (shiftComm _ _ _).hom ≫ f⟦j⟧'⟦i⟧' ≫ (shiftComm _ _ _).hom := by
   erw [← shiftComm_symm Y i j, ← ((shiftFunctorComm C i j).hom.naturality_assoc f)]
   dsimp
   simp only [Iso.hom_inv_id_app, Functor.comp_obj, Category.comp_id]
-#align category_theory.shift_comm' CategoryTheory.shift_comm'
+#align category_theory.shift_comm' CategoryTheory.shiftComm'
 
 @[reassoc]
 theorem shiftComm_hom_comp (i j : A) :
     (shiftComm X i j).hom ≫ f⟦j⟧'⟦i⟧' = f⟦i⟧'⟦j⟧' ≫ (shiftComm Y i j).hom := by
-  rw [shift_comm', ← shiftComm_symm, Iso.symm_hom, Iso.inv_hom_id_assoc]
+  rw [shiftComm', ← shiftComm_symm, Iso.symm_hom, Iso.inv_hom_id_assoc]
 #align category_theory.shift_comm_hom_comp CategoryTheory.shiftComm_hom_comp
 
 lemma shiftFunctorZero_hom_app_shift (n : A) :
feat: port CategoryTheory.Shift.Basic (#3039)

Co-authored-by: adamtopaz <github@adamtopaz.com> Co-authored-by: Moritz Firsching <firsching@google.com> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Dependencies 129

130 files ported (100.0%)
54473 lines ported (100.0%)

All dependencies are ported!