category_theory.shift.basic
⟷
Mathlib.CategoryTheory.Shift.Basic
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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`
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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) =
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -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₁⟧) ≫
mathlib commit https://github.com/leanprover-community/mathlib/commit/e05ead7993520a432bec94ac504842d90707ad63
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/06a655b5fcfbda03502f9158bbf6c0f1400886f9
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/d95bef0d215ea58c0fd7bbc4b151bf3fe952c095
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/b685f506164f8d17a6404048bc4d696739c5d976
@@ -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'
@@ -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 -/
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -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
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)
@@ -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
@@ -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 -/
@@ -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
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>
@@ -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
@@ -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,
@@ -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
@@ -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'
@@ -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₃⟧' ≫
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.
@@ -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 ≫
@@ -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,
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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]
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 :=
@@ -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
@@ -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`
@@ -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
@@ -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) :
All dependencies are ported!