category_theory.abelian.right_derived
⟷
Mathlib.CategoryTheory.Abelian.RightDerived
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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
@@ -72,7 +72,6 @@ def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
#align category_theory.functor.right_derived CategoryTheory.Functor.rightDerived
-/
-#print CategoryTheory.Functor.rightDerivedObjIso /-
/-- We can compute a right derived functor using a chosen injective resolution. -/
@[simps]
def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
@@ -84,9 +83,7 @@ def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
(F.mapHomotopyEquiv (InjectiveResolution.homotopyEquiv _ P))) ≪≫
(HomotopyCategory.homology'Factors D _ n).app _
#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIso
--/
-#print CategoryTheory.Functor.rightDerivedObjInjectiveZero /-
/-- The 0-th derived functor of `F` on an injective object `X` is just `F.obj X`. -/
@[simps]
def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
@@ -95,11 +92,9 @@ def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Inj
(homology'Functor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
(CochainComplex.homologyFunctor0Single₀ D).app (F.obj X)
#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZero
--/
open scoped ZeroObject
-#print CategoryTheory.Functor.rightDerivedObjInjectiveSucc /-
/-- The higher derived functors vanish on injective objects. -/
@[simps inv]
def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
@@ -108,7 +103,6 @@ def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X
(homology'Functor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
(CochainComplex.homology'FunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
--/
#print CategoryTheory.Functor.rightDerived_map_eq /-
/-- We can compute a right derived functor on a morphism using a descent of that morphism
@@ -165,7 +159,6 @@ theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [
#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_comp
-/
-#print CategoryTheory.NatTrans.rightDerived_eq /-
/-- A component of the natural transformation between right-derived functors can be computed
using a chosen injective resolution.
-/
@@ -189,7 +182,6 @@ theorem NatTrans.rightDerived_eq {F G : C ⥤ D} [F.Additive] [G.Additive] (α :
apply functor.map_homotopy
apply HomotopyEquiv.homotopyHomInvId
#align category_theory.nat_trans.right_derived_eq CategoryTheory.NatTrans.rightDerived_eq
--/
end CategoryTheory
@@ -209,7 +201,6 @@ open CategoryTheory.Preadditive
variable [Abelian C] [Abelian D] [Additive F]
-#print CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono /-
/-- If `preserves_finite_limits F` and `mono f`, then `exact (F.map f) (F.map g)` if
`exact f g`. -/
theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits F] [Mono f]
@@ -217,10 +208,8 @@ theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits
Abelian.exact_of_is_kernel _ _ (by simp [← functor.map_comp, ex.w]) <|
Limits.isLimitForkMapOfIsLimit' _ ex.w (Abelian.isLimitOfExactOfMono _ _ ex)
#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono
--/
-#print CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution /-
-theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
+theorem exact_of_map_injective_resolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
Exact (F.map (P.ι.f 0))
(((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0) :=
Preadditive.exact_of_iso_of_exact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
@@ -228,10 +217,8 @@ theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesF
(HomologicalComplex.xNextIso ((F.mapHomologicalComplex _).obj P.cocomplex) rfl).symm (by simp)
(by rw [iso.refl_hom, category.id_comp, iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr)
(preserves_exact_of_preserves_finite_limits_of_mono _ P.exact₀)
-#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution
--/
+#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injective_resolution
-#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp /-
/-- Given `P : InjectiveResolution X`, a morphism `(F.right_derived 0).obj X ⟶ F.obj X` given
`preserves_finite_limits F`. -/
def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
@@ -241,9 +228,7 @@ def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X
kernel.map _ _ (cokernel.desc _ (𝟙 _) (by simp)) (𝟙 _) (by ext; simp) ≫
(asIso (kernel.lift _ _ (exact_of_map_injective_resolution F P).w)).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp
--/
-#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv /-
/-- Given `P : InjectiveResolution X`, a morphism `F.obj X ⟶ (F.right_derived 0).obj X`. -/
def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveResolution X) :
F.obj X ⟶ (F.rightDerived 0).obj X :=
@@ -255,9 +240,7 @@ def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveReso
simp only [InjectiveResolution.ι_f_zero_comp_complex_d, functor.map_zero, zero_comp]) ≫
(rightDerivedObjIso F 0 P).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv
--/
-#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv /-
theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
right_derived_zero_to_self_app F P ≫ right_derived_zero_to_self_app_inv F P = 𝟙 _ :=
@@ -273,9 +256,7 @@ theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFinite
homology'.π'_ι, category.assoc, ← category.assoc (cokernel.π _), cokernel.π_desc, whisker_eq]
convert category.id_comp (cokernel.π _)
#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv
--/
-#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp /-
theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
right_derived_zero_to_self_app_inv F P ≫ right_derived_zero_to_self_app F P = 𝟙 _ :=
@@ -289,9 +270,7 @@ theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteL
rw [← category.assoc, ← category.assoc, category.assoc _ _ (homology'IsoKernelDesc _ _ _).Hom]
simp
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp
--/
-#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso /-
/-- Given `P : InjectiveResolution X`, the isomorphism `(F.right_derived 0).obj X ≅ F.obj X` if
`preserves_finite_limits F`. -/
def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
@@ -302,12 +281,10 @@ def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F]
hom_inv_id' := right_derived_zero_to_self_app_comp_inv _ P
inv_hom_id' := right_derived_zero_to_self_app_inv_comp _ P
#align category_theory.abelian.functor.right_derived_zero_to_self_app_iso CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso
--/
-#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural /-
/-- Given `P : InjectiveResolution X` and `Q : InjectiveResolution Y` and a morphism `f : X ⟶ Y`,
naturality of the square given by `right_derived_zero_to_self_natural`. -/
-theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f : X ⟶ Y)
+theorem rightDerived_zero_to_self_natural [EnoughInjectives C] {X : C} {Y : C} (f : X ⟶ Y)
(P : InjectiveResolution X) (Q : InjectiveResolution Y) :
F.map f ≫ right_derived_zero_to_self_app_inv F Q =
right_derived_zero_to_self_app_inv F P ≫ (F.rightDerived 0).map f :=
@@ -326,10 +303,8 @@ theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f :
HomologicalComplex.Hom.sqFrom_left, map_homological_complex_map_f, ← functor.map_comp,
show f ≫ Q.ι.f 0 = P.ι.f 0 ≫ (InjectiveResolution.desc f Q P).f 0 from
HomologicalComplex.congr_hom (InjectiveResolution.desc_commutes f Q P).symm 0]
-#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural
--/
+#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerived_zero_to_self_natural
-#print CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf /-
/-- Given `preserves_finite_limits F`, the natural isomorphism `(F.right_derived 0) ≅ F`. -/
def rightDerivedZeroIsoSelf [EnoughInjectives C] [PreservesFiniteLimits F] : F.rightDerived 0 ≅ F :=
Iso.symm <|
@@ -337,7 +312,6 @@ def rightDerivedZeroIsoSelf [EnoughInjectives C] [PreservesFiniteLimits F] : F.r
(fun X => (right_derived_zero_to_self_app_iso _ (InjectiveResolution.of X)).symm) fun X Y f =>
right_derived_zero_to_self_natural _ _ _ _
#align category_theory.abelian.functor.right_derived_zero_iso_self CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf
--/
end CategoryTheory.Abelian.Functor
mathlib commit https://github.com/leanprover-community/mathlib/commit/3365b20c2ffa7c35e47e5209b89ba9abdddf3ffe
@@ -68,7 +68,7 @@ variable [Abelian C] [HasInjectiveResolutions C] [Abelian D]
#print CategoryTheory.Functor.rightDerived /-
/-- The right derived functors of an additive functor. -/
def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
- injectiveResolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homologyFunctor D _ n
+ injectiveResolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homology'Functor D _ n
#align category_theory.functor.right_derived CategoryTheory.Functor.rightDerived
-/
@@ -78,11 +78,11 @@ def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
(P : InjectiveResolution X) :
(F.rightDerived n).obj X ≅
- (homologyFunctor D _ n).obj ((F.mapHomologicalComplex _).obj P.cocomplex) :=
- (HomotopyCategory.homologyFunctor D _ n).mapIso
+ (homology'Functor D _ n).obj ((F.mapHomologicalComplex _).obj P.cocomplex) :=
+ (HomotopyCategory.homology'Functor D _ n).mapIso
(HomotopyCategory.isoOfHomotopyEquiv
(F.mapHomotopyEquiv (InjectiveResolution.homotopyEquiv _ P))) ≪≫
- (HomotopyCategory.homologyFactors D _ n).app _
+ (HomotopyCategory.homology'Factors D _ n).app _
#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIso
-/
@@ -92,7 +92,7 @@ def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
(F.rightDerived 0).obj X ≅ F.obj X :=
F.rightDerivedObjIso 0 (InjectiveResolution.self X) ≪≫
- (homologyFunctor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
+ (homology'Functor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
(CochainComplex.homologyFunctor0Single₀ D).app (F.obj X)
#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZero
-/
@@ -105,8 +105,8 @@ open scoped ZeroObject
def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
(F.rightDerived (n + 1)).obj X ≅ 0 :=
F.rightDerivedObjIso (n + 1) (InjectiveResolution.self X) ≪≫
- (homologyFunctor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
- (CochainComplex.homologyFunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
+ (homology'Functor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
+ (CochainComplex.homology'FunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
-/
@@ -119,12 +119,12 @@ theorem Functor.rightDerived_map_eq (F : C ⥤ D) [F.Additive] (n : ℕ) {X Y :
(w : Q.ι ≫ g = (CochainComplex.single₀ C).map f ≫ P.ι) :
(F.rightDerived n).map f =
(F.rightDerivedObjIso n Q).Hom ≫
- (homologyFunctor D _ n).map ((F.mapHomologicalComplex _).map g) ≫
+ (homology'Functor D _ n).map ((F.mapHomologicalComplex _).map g) ≫
(F.rightDerivedObjIso n P).inv :=
by
dsimp only [functor.right_derived, functor.right_derived_obj_iso]
dsimp; simp only [category.comp_id, category.id_comp]
- rw [← homologyFunctor_map, HomotopyCategory.homologyFunctor_map_factors]
+ rw [← homology'Functor_map, HomotopyCategory.homology'Functor_map_factors]
simp only [← functor.map_comp]
congr 1
apply HomotopyCategory.eq_of_homotopy
@@ -145,7 +145,7 @@ theorem Functor.rightDerived_map_eq (F : C ⥤ D) [F.Additive] (n : ℕ) {X Y :
def NatTrans.rightDerived {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) (n : ℕ) :
F.rightDerived n ⟶ G.rightDerived n :=
whiskerLeft (injectiveResolutions C)
- (whiskerRight (NatTrans.mapHomotopyCategory α _) (HomotopyCategory.homologyFunctor D _ n))
+ (whiskerRight (NatTrans.mapHomotopyCategory α _) (HomotopyCategory.homology'Functor D _ n))
#align category_theory.nat_trans.right_derived CategoryTheory.NatTrans.rightDerived
-/
@@ -173,13 +173,13 @@ theorem NatTrans.rightDerived_eq {F G : C ⥤ D} [F.Additive] [G.Additive] (α :
(P : InjectiveResolution X) :
(NatTrans.rightDerived α n).app X =
(F.rightDerivedObjIso n P).Hom ≫
- (homologyFunctor D _ n).map ((NatTrans.mapHomologicalComplex α _).app P.cocomplex) ≫
+ (homology'Functor D _ n).map ((NatTrans.mapHomologicalComplex α _).app P.cocomplex) ≫
(G.rightDerivedObjIso n P).inv :=
by
symm
dsimp [nat_trans.right_derived, functor.right_derived_obj_iso]
simp only [category.comp_id, category.id_comp]
- rw [← homologyFunctor_map, HomotopyCategory.homologyFunctor_map_factors]
+ rw [← homology'Functor_map, HomotopyCategory.homology'Functor_map_factors]
simp only [← functor.map_comp]
congr 1
apply HomotopyCategory.eq_of_homotopy
@@ -237,7 +237,7 @@ theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesF
def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) : (F.rightDerived 0).obj X ⟶ F.obj X :=
(rightDerivedObjIso F 0 P).Hom ≫
- (homologyIsoKernelDesc _ _ _).Hom ≫
+ (homology'IsoKernelDesc _ _ _).Hom ≫
kernel.map _ _ (cokernel.desc _ (𝟙 _) (by simp)) (𝟙 _) (by ext; simp) ≫
(asIso (kernel.lift _ _ (exact_of_map_injective_resolution F P).w)).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp
@@ -247,7 +247,7 @@ def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X
/-- Given `P : InjectiveResolution X`, a morphism `F.obj X ⟶ (F.right_derived 0).obj X`. -/
def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveResolution X) :
F.obj X ⟶ (F.rightDerived 0).obj X :=
- homology.lift _ _ _ (F.map (P.ι.f 0) ≫ cokernel.π _)
+ homology'.lift _ _ _ (F.map (P.ι.f 0) ≫ cokernel.π _)
(by
have : (ComplexShape.up ℕ).Rel 0 1 := rfl
rw [category.assoc, cokernel.π_desc, HomologicalComplex.dFrom_eq _ this,
@@ -266,11 +266,11 @@ theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFinite
rw [← category.assoc, iso.comp_inv_eq, category.id_comp, category.assoc, category.assoc, ←
iso.eq_inv_comp, iso.inv_hom_id]
ext
- rw [category.assoc, category.assoc, homology.lift_ι, category.id_comp, homology.π'_ι,
+ rw [category.assoc, category.assoc, homology'.lift_ι, category.id_comp, homology'.π'_ι,
category.assoc, ← category.assoc _ _ (cokernel.π _), abelian.kernel.lift.inv, ← category.assoc,
← category.assoc _ (kernel.ι _), limits.kernel.lift_ι, category.assoc, category.assoc, ←
- category.assoc (homologyIsoKernelDesc _ _ _).Hom _ _, ← homology.ι, ← category.assoc,
- homology.π'_ι, category.assoc, ← category.assoc (cokernel.π _), cokernel.π_desc, whisker_eq]
+ category.assoc (homology'IsoKernelDesc _ _ _).Hom _ _, ← homology'.ι, ← category.assoc,
+ homology'.π'_ι, category.assoc, ← category.assoc (cokernel.π _), cokernel.π_desc, whisker_eq]
convert category.id_comp (cokernel.π _)
#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv
-/
@@ -285,8 +285,8 @@ theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteL
category.assoc _ _ (F.right_derived_obj_iso 0 P).Hom, iso.inv_hom_id, category.comp_id, ←
category.assoc, ← category.assoc, is_iso.comp_inv_eq, category.id_comp]
ext
- simp only [limits.kernel.lift_ι_assoc, category.assoc, limits.kernel.lift_ι, homology.lift]
- rw [← category.assoc, ← category.assoc, category.assoc _ _ (homologyIsoKernelDesc _ _ _).Hom]
+ simp only [limits.kernel.lift_ι_assoc, category.assoc, limits.kernel.lift_ι, homology'.lift]
+ rw [← category.assoc, ← category.assoc, category.assoc _ _ (homology'IsoKernelDesc _ _ _).Hom]
simp
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp
-/
@@ -318,12 +318,12 @@ theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f :
category.assoc, category.assoc, category.assoc, category.assoc, iso.inv_hom_id,
category.comp_id, ← category.assoc (F.right_derived_obj_iso 0 P).inv, iso.inv_hom_id,
category.id_comp]
- dsimp only [homologyFunctor_map]
+ dsimp only [homology'Functor_map]
ext
- rw [category.assoc, homology.lift_ι, category.assoc, homology.map_ι, ←
- category.assoc (homology.lift _ _ _ _ _) _ _, homology.lift_ι, category.assoc, cokernel.π_desc,
- ← category.assoc, ← functor.map_comp, ← category.assoc, HomologicalComplex.Hom.sqFrom_left,
- map_homological_complex_map_f, ← functor.map_comp,
+ rw [category.assoc, homology'.lift_ι, category.assoc, homology'.map_ι, ←
+ category.assoc (homology'.lift _ _ _ _ _) _ _, homology'.lift_ι, category.assoc,
+ cokernel.π_desc, ← category.assoc, ← functor.map_comp, ← category.assoc,
+ HomologicalComplex.Hom.sqFrom_left, map_homological_complex_map_f, ← functor.map_comp,
show f ≫ Q.ι.f 0 = P.ι.f 0 ≫ (InjectiveResolution.desc f Q P).f 0 from
HomologicalComplex.congr_hom (InjectiveResolution.desc_commutes f Q P).symm 0]
#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,11 +3,11 @@ Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang, Scott Morrison
-/
-import Mathbin.CategoryTheory.Abelian.InjectiveResolution
-import Mathbin.Algebra.Homology.Additive
-import Mathbin.CategoryTheory.Limits.Constructions.EpiMono
-import Mathbin.CategoryTheory.Abelian.Homology
-import Mathbin.CategoryTheory.Abelian.Exact
+import CategoryTheory.Abelian.InjectiveResolution
+import Algebra.Homology.Additive
+import CategoryTheory.Limits.Constructions.EpiMono
+import CategoryTheory.Abelian.Homology
+import CategoryTheory.Abelian.Exact
#align_import category_theory.abelian.right_derived from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang, Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.abelian.right_derived
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Abelian.InjectiveResolution
import Mathbin.Algebra.Homology.Additive
@@ -14,6 +9,8 @@ import Mathbin.CategoryTheory.Limits.Constructions.EpiMono
import Mathbin.CategoryTheory.Abelian.Homology
import Mathbin.CategoryTheory.Abelian.Exact
+#align_import category_theory.abelian.right_derived from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
+
/-!
# Right-derived functors
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -75,6 +75,7 @@ def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
#align category_theory.functor.right_derived CategoryTheory.Functor.rightDerived
-/
+#print CategoryTheory.Functor.rightDerivedObjIso /-
/-- We can compute a right derived functor using a chosen injective resolution. -/
@[simps]
def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
@@ -86,7 +87,9 @@ def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
(F.mapHomotopyEquiv (InjectiveResolution.homotopyEquiv _ P))) ≪≫
(HomotopyCategory.homologyFactors D _ n).app _
#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIso
+-/
+#print CategoryTheory.Functor.rightDerivedObjInjectiveZero /-
/-- The 0-th derived functor of `F` on an injective object `X` is just `F.obj X`. -/
@[simps]
def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
@@ -95,9 +98,11 @@ def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Inj
(homologyFunctor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
(CochainComplex.homologyFunctor0Single₀ D).app (F.obj X)
#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZero
+-/
open scoped ZeroObject
+#print CategoryTheory.Functor.rightDerivedObjInjectiveSucc /-
/-- The higher derived functors vanish on injective objects. -/
@[simps inv]
def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
@@ -106,7 +111,9 @@ def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X
(homologyFunctor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
(CochainComplex.homologyFunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
+-/
+#print CategoryTheory.Functor.rightDerived_map_eq /-
/-- We can compute a right derived functor on a morphism using a descent of that morphism
to a cochain map between chosen injective resolutions.
-/
@@ -133,6 +140,7 @@ theorem Functor.rightDerived_map_eq (F : C ⥤ D) [F.Additive] (n : ℕ) {X Y :
rw [← category.assoc, w, category.assoc]
simp only [InjectiveResolution.homotopy_equiv_inv_ι]
#align category_theory.functor.right_derived_map_eq CategoryTheory.Functor.rightDerived_map_eq
+-/
#print CategoryTheory.NatTrans.rightDerived /-
/-- The natural transformation between right-derived functors induced by a natural transformation.-/
@@ -144,18 +152,23 @@ def NatTrans.rightDerived {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶
#align category_theory.nat_trans.right_derived CategoryTheory.NatTrans.rightDerived
-/
+#print CategoryTheory.NatTrans.rightDerived_id /-
@[simp]
theorem NatTrans.rightDerived_id (F : C ⥤ D) [F.Additive] (n : ℕ) :
NatTrans.rightDerived (𝟙 F) n = 𝟙 (F.rightDerived n) := by simp [nat_trans.right_derived]; rfl
#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_id
+-/
+#print CategoryTheory.NatTrans.rightDerived_comp /-
@[simp, nolint simp_nf]
theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [H.Additive]
(α : F ⟶ G) (β : G ⟶ H) (n : ℕ) :
NatTrans.rightDerived (α ≫ β) n = NatTrans.rightDerived α n ≫ NatTrans.rightDerived β n := by
simp [nat_trans.right_derived]
#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_comp
+-/
+#print CategoryTheory.NatTrans.rightDerived_eq /-
/-- A component of the natural transformation between right-derived functors can be computed
using a chosen injective resolution.
-/
@@ -179,6 +192,7 @@ theorem NatTrans.rightDerived_eq {F G : C ⥤ D} [F.Additive] [G.Additive] (α :
apply functor.map_homotopy
apply HomotopyEquiv.homotopyHomInvId
#align category_theory.nat_trans.right_derived_eq CategoryTheory.NatTrans.rightDerived_eq
+-/
end CategoryTheory
@@ -198,6 +212,7 @@ open CategoryTheory.Preadditive
variable [Abelian C] [Abelian D] [Additive F]
+#print CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono /-
/-- If `preserves_finite_limits F` and `mono f`, then `exact (F.map f) (F.map g)` if
`exact f g`. -/
theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits F] [Mono f]
@@ -205,7 +220,9 @@ theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits
Abelian.exact_of_is_kernel _ _ (by simp [← functor.map_comp, ex.w]) <|
Limits.isLimitForkMapOfIsLimit' _ ex.w (Abelian.isLimitOfExactOfMono _ _ ex)
#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono
+-/
+#print CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution /-
theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
Exact (F.map (P.ι.f 0))
(((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0) :=
@@ -215,7 +232,9 @@ theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesF
(by rw [iso.refl_hom, category.id_comp, iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr)
(preserves_exact_of_preserves_finite_limits_of_mono _ P.exact₀)
#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution
+-/
+#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp /-
/-- Given `P : InjectiveResolution X`, a morphism `(F.right_derived 0).obj X ⟶ F.obj X` given
`preserves_finite_limits F`. -/
def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
@@ -225,7 +244,9 @@ def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X
kernel.map _ _ (cokernel.desc _ (𝟙 _) (by simp)) (𝟙 _) (by ext; simp) ≫
(asIso (kernel.lift _ _ (exact_of_map_injective_resolution F P).w)).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp
+-/
+#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv /-
/-- Given `P : InjectiveResolution X`, a morphism `F.obj X ⟶ (F.right_derived 0).obj X`. -/
def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveResolution X) :
F.obj X ⟶ (F.rightDerived 0).obj X :=
@@ -237,7 +258,9 @@ def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveReso
simp only [InjectiveResolution.ι_f_zero_comp_complex_d, functor.map_zero, zero_comp]) ≫
(rightDerivedObjIso F 0 P).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv
+-/
+#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv /-
theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
right_derived_zero_to_self_app F P ≫ right_derived_zero_to_self_app_inv F P = 𝟙 _ :=
@@ -253,7 +276,9 @@ theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFinite
homology.π'_ι, category.assoc, ← category.assoc (cokernel.π _), cokernel.π_desc, whisker_eq]
convert category.id_comp (cokernel.π _)
#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv
+-/
+#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp /-
theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
right_derived_zero_to_self_app_inv F P ≫ right_derived_zero_to_self_app F P = 𝟙 _ :=
@@ -267,7 +292,9 @@ theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteL
rw [← category.assoc, ← category.assoc, category.assoc _ _ (homologyIsoKernelDesc _ _ _).Hom]
simp
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp
+-/
+#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso /-
/-- Given `P : InjectiveResolution X`, the isomorphism `(F.right_derived 0).obj X ≅ F.obj X` if
`preserves_finite_limits F`. -/
def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
@@ -278,7 +305,9 @@ def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F]
hom_inv_id' := right_derived_zero_to_self_app_comp_inv _ P
inv_hom_id' := right_derived_zero_to_self_app_inv_comp _ P
#align category_theory.abelian.functor.right_derived_zero_to_self_app_iso CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso
+-/
+#print CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural /-
/-- Given `P : InjectiveResolution X` and `Q : InjectiveResolution Y` and a morphism `f : X ⟶ Y`,
naturality of the square given by `right_derived_zero_to_self_natural`. -/
theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f : X ⟶ Y)
@@ -301,6 +330,7 @@ theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f :
show f ≫ Q.ι.f 0 = P.ι.f 0 ≫ (InjectiveResolution.desc f Q P).f 0 from
HomologicalComplex.congr_hom (InjectiveResolution.desc_commutes f Q P).symm 0]
#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural
+-/
#print CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf /-
/-- Given `preserves_finite_limits F`, the natural isomorphism `(F.right_derived 0) ≅ F`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -212,7 +212,7 @@ theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesF
Preadditive.exact_of_iso_of_exact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
(Iso.refl _)
(HomologicalComplex.xNextIso ((F.mapHomologicalComplex _).obj P.cocomplex) rfl).symm (by simp)
- (by rw [iso.refl_hom, category.id_comp, iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr )
+ (by rw [iso.refl_hom, category.id_comp, iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr)
(preserves_exact_of_preserves_finite_limits_of_mono _ P.exact₀)
#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -96,7 +96,7 @@ def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Inj
(CochainComplex.homologyFunctor0Single₀ D).app (F.obj X)
#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZero
-open ZeroObject
+open scoped ZeroObject
/-- The higher derived functors vanish on injective objects. -/
@[simps inv]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -75,9 +75,6 @@ def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
#align category_theory.functor.right_derived CategoryTheory.Functor.rightDerived
-/
-/- warning: category_theory.functor.right_derived_obj_iso -> CategoryTheory.Functor.rightDerivedObjIso is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIsoₓ'. -/
/-- We can compute a right derived functor using a chosen injective resolution. -/
@[simps]
def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
@@ -90,12 +87,6 @@ def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
(HomotopyCategory.homologyFactors D _ n).app _
#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIso
-/- warning: category_theory.functor.right_derived_obj_injective_zero -> CategoryTheory.Functor.rightDerivedObjInjectiveZero is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjInjectiveZero._proof_1.{u2, u1} C _inst_1 _inst_3)] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (X : C) [_inst_7 : CategoryTheory.Injective.{u1, u2} C _inst_1 X], CategoryTheory.Iso.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 F X)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (X : C) [_inst_7 : CategoryTheory.Injective.{u1, u2} C _inst_1 X], CategoryTheory.Iso.{u4, u3} D _inst_2 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_2 F) X)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZeroₓ'. -/
/-- The 0-th derived functor of `F` on an injective object `X` is just `F.obj X`. -/
@[simps]
def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
@@ -107,12 +98,6 @@ def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Inj
open ZeroObject
-/- warning: category_theory.functor.right_derived_obj_injective_succ -> CategoryTheory.Functor.rightDerivedObjInjectiveSucc is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjInjectiveSucc._proof_1.{u2, u1} C _inst_1 _inst_3)] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) (X : C) [_inst_7 : CategoryTheory.Injective.{u1, u2} C _inst_1 X], CategoryTheory.Iso.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) X) (OfNat.ofNat.{u3} D 0 (OfNat.mk.{u3} D 0 (Zero.zero.{u3} D (CategoryTheory.Limits.HasZeroObject.zero'.{u4, u3} D _inst_2 (CategoryTheory.Abelian.hasZeroObject.{u4, u3} D _inst_2 _inst_5)))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) (X : C) [_inst_7 : CategoryTheory.Injective.{u1, u2} C _inst_1 X], CategoryTheory.Iso.{u4, u3} D _inst_2 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) X) (OfNat.ofNat.{u3} D 0 (Zero.toOfNat0.{u3} D (CategoryTheory.Limits.HasZeroObject.zero'.{u4, u3} D _inst_2 (CategoryTheory.Abelian.hasZeroObject.{u4, u3} D _inst_2 _inst_5))))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSuccₓ'. -/
/-- The higher derived functors vanish on injective objects. -/
@[simps inv]
def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
@@ -122,9 +107,6 @@ def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X
(CochainComplex.homologyFunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
-/- warning: category_theory.functor.right_derived_map_eq -> CategoryTheory.Functor.rightDerived_map_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_map_eq CategoryTheory.Functor.rightDerived_map_eqₓ'. -/
/-- We can compute a right derived functor on a morphism using a descent of that morphism
to a cochain map between chosen injective resolutions.
-/
@@ -162,20 +144,11 @@ def NatTrans.rightDerived {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶
#align category_theory.nat_trans.right_derived CategoryTheory.NatTrans.rightDerived
-/
-/- warning: category_theory.nat_trans.right_derived_id -> CategoryTheory.NatTrans.rightDerived_id is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat), Eq.{succ (max u2 u4)} (Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F F _inst_6 _inst_6 (CategoryTheory.CategoryStruct.id.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2)) F) n) (CategoryTheory.CategoryStruct.id.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2)) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n))
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] [_inst_3 : CategoryTheory.Abelian.{u3, u4} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u2, u1} D _inst_2] (F : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F] (n : Nat), Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F F _inst_6 _inst_6 (CategoryTheory.CategoryStruct.id.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2)) F) n) (CategoryTheory.CategoryStruct.id.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2)) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n))
-Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_idₓ'. -/
@[simp]
theorem NatTrans.rightDerived_id (F : C ⥤ D) [F.Additive] (n : ℕ) :
NatTrans.rightDerived (𝟙 F) n = 𝟙 (F.rightDerived n) := by simp [nat_trans.right_derived]; rfl
#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_id
-/- warning: category_theory.nat_trans.right_derived_comp -> CategoryTheory.NatTrans.rightDerived_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_compₓ'. -/
@[simp, nolint simp_nf]
theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [H.Additive]
(α : F ⟶ G) (β : G ⟶ H) (n : ℕ) :
@@ -183,9 +156,6 @@ theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [
simp [nat_trans.right_derived]
#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_comp
-/- warning: category_theory.nat_trans.right_derived_eq -> CategoryTheory.NatTrans.rightDerived_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_eq CategoryTheory.NatTrans.rightDerived_eqₓ'. -/
/-- A component of the natural transformation between right-derived functors can be computed
using a chosen injective resolution.
-/
@@ -228,12 +198,6 @@ open CategoryTheory.Preadditive
variable [Abelian C] [Abelian D] [Additive F]
-/- warning: category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono -> CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) {X : C} {Y : C} {Z : C} {f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y} {g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Z} [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] [_inst_7 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], (CategoryTheory.Exact.{u1, u2} C _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasKernels.{u1, u2} C _inst_1 _inst_3) X Y Z f g) -> (CategoryTheory.Exact.{u1, u2} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Abelian.hasKernels.{u1, u2} D _inst_2 _inst_4) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F Z) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X Y f) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 F Y Z g))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) {X : C} {Y : C} {Z : C} {f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y} {g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Z} [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] [_inst_7 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], (CategoryTheory.Exact.{u1, u2} C _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3)) X Y Z f g) -> (CategoryTheory.Exact.{u1, u2} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} D _inst_2 _inst_4)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) Z) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X Y f) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) Y Z g))
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_monoₓ'. -/
/-- If `preserves_finite_limits F` and `mono f`, then `exact (F.map f) (F.map g)` if
`exact f g`. -/
theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits F] [Mono f]
@@ -242,9 +206,6 @@ theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits
Limits.isLimitForkMapOfIsLimit' _ ex.w (Abelian.isLimitOfExactOfMono _ _ ex)
#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono
-/- warning: category_theory.abelian.functor.exact_of_map_injective_resolution -> CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolutionₓ'. -/
theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
Exact (F.map (P.ι.f 0))
(((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0) :=
@@ -255,12 +216,6 @@ theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesF
(preserves_exact_of_preserves_finite_limits_of_mono _ P.exact₀)
#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution
-/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp._proof_1.{u2, u1} C _inst_1 _inst_3) X) -> (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) -> (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppₓ'. -/
/-- Given `P : InjectiveResolution X`, a morphism `(F.right_derived 0).obj X ⟶ F.obj X` given
`preserves_finite_limits F`. -/
def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
@@ -271,12 +226,6 @@ def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X
(asIso (kernel.lift _ _ (exact_of_map_injective_resolution F P).w)).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp
-/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_inv -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv._proof_1.{u2, u1} C _inst_1 _inst_3) X) -> (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) -> (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInvₓ'. -/
/-- Given `P : InjectiveResolution X`, a morphism `F.obj X ⟶ (F.right_derived 0).obj X`. -/
def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveResolution X) :
F.obj X ⟶ (F.rightDerived 0).obj X :=
@@ -289,9 +238,6 @@ def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveReso
(rightDerivedObjIso F 0 P).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv
-/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_invₓ'. -/
theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
right_derived_zero_to_self_app F P ≫ right_derived_zero_to_self_app_inv F P = 𝟙 _ :=
@@ -308,9 +254,6 @@ theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFinite
convert category.id_comp (cokernel.π _)
#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv
-/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_compₓ'. -/
theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
right_derived_zero_to_self_app_inv F P ≫ right_derived_zero_to_self_app F P = 𝟙 _ :=
@@ -325,12 +268,6 @@ theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteL
simp
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp
-/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_iso -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso._proof_1.{u2, u1} C _inst_1 _inst_3) X) -> (CategoryTheory.Iso.{u1, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) -> (CategoryTheory.Iso.{u1, u2} D _inst_2 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_iso CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIsoₓ'. -/
/-- Given `P : InjectiveResolution X`, the isomorphism `(F.right_derived 0).obj X ≅ F.obj X` if
`preserves_finite_limits F`. -/
def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
@@ -342,9 +279,6 @@ def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F]
inv_hom_id' := right_derived_zero_to_self_app_inv_comp _ P
#align category_theory.abelian.functor.right_derived_zero_to_self_app_iso CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso
-/- warning: category_theory.abelian.functor.right_derived_zero_to_self_natural -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_naturalₓ'. -/
/-- Given `P : InjectiveResolution X` and `Q : InjectiveResolution Y` and a morphism `f : X ⟶ Y`,
naturality of the square given by `right_derived_zero_to_self_natural`. -/
theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f : X ⟶ Y)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -170,10 +170,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_idₓ'. -/
@[simp]
theorem NatTrans.rightDerived_id (F : C ⥤ D) [F.Additive] (n : ℕ) :
- NatTrans.rightDerived (𝟙 F) n = 𝟙 (F.rightDerived n) :=
- by
- simp [nat_trans.right_derived]
- rfl
+ NatTrans.rightDerived (𝟙 F) n = 𝟙 (F.rightDerived n) := by simp [nat_trans.right_derived]; rfl
#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_id
/- warning: category_theory.nat_trans.right_derived_comp -> CategoryTheory.NatTrans.rightDerived_comp is a dubious translation:
@@ -270,10 +267,7 @@ def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X
(P : InjectiveResolution X) : (F.rightDerived 0).obj X ⟶ F.obj X :=
(rightDerivedObjIso F 0 P).Hom ≫
(homologyIsoKernelDesc _ _ _).Hom ≫
- kernel.map _ _ (cokernel.desc _ (𝟙 _) (by simp)) (𝟙 _)
- (by
- ext
- simp) ≫
+ kernel.map _ _ (cokernel.desc _ (𝟙 _) (by simp)) (𝟙 _) (by ext; simp) ≫
(asIso (kernel.lift _ _ (exact_of_map_injective_resolution F P).w)).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang, Scott Morrison
! This file was ported from Lean 3 source module category_theory.abelian.right_derived
-! leanprover-community/mathlib commit 024a4231815538ac739f52d08dd20a55da0d6b23
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -17,6 +17,9 @@ import Mathbin.CategoryTheory.Abelian.Exact
/-!
# Right-derived functors
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We define the right-derived functors `F.right_derived n : C ⥤ D` for any additive functor `F`
out of a category with injective resolutions.
@@ -73,10 +76,7 @@ def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
-/
/- warning: category_theory.functor.right_derived_obj_iso -> CategoryTheory.Functor.rightDerivedObjIso is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_1.{u2, u1} C _inst_1 _inst_3)] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_2.{u2, u1} C _inst_1 _inst_3) X), CategoryTheory.Iso.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P)))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), CategoryTheory.Iso.{u4, u3} D _inst_2 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u4, succ u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u4, max u3 u4} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u4, max u3 u4} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u4, u3} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u4, u3} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u1, succ u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u4, max u3 u4} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u4, max u3 u4} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIsoₓ'. -/
/-- We can compute a right derived functor using a chosen injective resolution. -/
@[simps]
@@ -123,10 +123,7 @@ def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X
#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
/- warning: category_theory.functor.right_derived_map_eq -> CategoryTheory.Functor.rightDerived_map_eq is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) {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)) Y X) {P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X} {Q : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y} (g : Quiver.Hom.{succ u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)))) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)), (Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)))) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) Y) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne))) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) Y) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (CategoryTheory.InjectiveResolution.ι.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y Q) g) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne))) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) X) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (CategoryTheory.Functor.map.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) Y X f) (CategoryTheory.InjectiveResolution.ι.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P))) -> (Eq.{succ u4} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) Y) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X)) (CategoryTheory.Functor.map.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) Y X f) (CategoryTheory.CategoryStruct.comp.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) Y) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Iso.hom.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) Y) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q))) (CategoryTheory.Functor.rightDerivedObjIso.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n Y Q)) (CategoryTheory.CategoryStruct.comp.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q))) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.map.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q)) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (CategoryTheory.Functor.map.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) g)) (CategoryTheory.Iso.inv.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n X P)))))
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] [_inst_3 : CategoryTheory.Abelian.{u3, u4} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u2, u1} D _inst_2] (F : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F] (n : Nat) {X : C} {Y : C} (f : Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) Y X) {P : CategoryTheory.InjectiveResolution.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X} {Q : CategoryTheory.InjectiveResolution.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y} (g : Quiver.Hom.{succ u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)), (Eq.{succ u3} (Quiver.Hom.{succ u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (Prefunctor.obj.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) Y) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)) (CategoryTheory.CategoryStruct.comp.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (Prefunctor.obj.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) Y) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P) (CategoryTheory.InjectiveResolution.ι.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q) g) (CategoryTheory.CategoryStruct.comp.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (Prefunctor.obj.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) Y) (Prefunctor.obj.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) X) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P) (Prefunctor.map.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) Y X f) (CategoryTheory.InjectiveResolution.ι.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) -> (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) Y) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X)) (Prefunctor.map.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) Y X f) (CategoryTheory.CategoryStruct.comp.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) Y) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q))) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (CategoryTheory.Iso.hom.{u2, u1} D _inst_2 (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) Y) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q))) (CategoryTheory.Functor.rightDerivedObjIso.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n Y Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q))) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.map.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)) (Prefunctor.map.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P) g)) (CategoryTheory.Iso.inv.{u2, u1} D _inst_2 (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n X P)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_map_eq CategoryTheory.Functor.rightDerived_map_eqₓ'. -/
/-- We can compute a right derived functor on a morphism using a descent of that morphism
to a cochain map between chosen injective resolutions.
@@ -180,10 +177,7 @@ theorem NatTrans.rightDerived_id (F : C ⥤ D) [F.Additive] (n : ℕ) :
#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_id
/- warning: category_theory.nat_trans.right_derived_comp -> CategoryTheory.NatTrans.rightDerived_comp is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] {F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} {H : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] [_inst_7 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G] [_inst_8 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) H] (α : Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) F G) (β : Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) G H) (n : Nat), Eq.{succ (max u2 u4)} (Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 H _inst_8 n)) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F H _inst_6 _inst_8 (CategoryTheory.CategoryStruct.comp.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2)) F G H α β) n) (CategoryTheory.CategoryStruct.comp.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2)) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 H _inst_8 n) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F G _inst_6 _inst_7 α n) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G H _inst_7 _inst_8 β n))
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] [_inst_3 : CategoryTheory.Abelian.{u3, u4} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u2, u1} D _inst_2] {F : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} {H : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} [_inst_6 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F] [_inst_7 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G] [_inst_8 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) H] (α : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) F G) (β : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) G H) (n : Nat), Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 H _inst_8 n)) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F H _inst_6 _inst_8 (CategoryTheory.CategoryStruct.comp.{max u2 u4, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2)) F G H α β) n) (CategoryTheory.CategoryStruct.comp.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2)) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 H _inst_8 n) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F G _inst_6 _inst_7 α n) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G H _inst_7 _inst_8 β n))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_compₓ'. -/
@[simp, nolint simp_nf]
theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [H.Additive]
@@ -193,10 +187,7 @@ theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [
#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_comp
/- warning: category_theory.nat_trans.right_derived_eq -> CategoryTheory.NatTrans.rightDerived_eq is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] {F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] [_inst_7 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G] (α : Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) F G) (n : Nat) {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) X)) (CategoryTheory.NatTrans.app.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F G _inst_6 _inst_7 α n) X) (CategoryTheory.CategoryStruct.comp.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) X) (CategoryTheory.Iso.hom.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n X P)) (CategoryTheory.CategoryStruct.comp.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) X) (CategoryTheory.Functor.map.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P)) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P)) (CategoryTheory.NatTrans.app.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.NatTrans.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F G _inst_6 _inst_7 α (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P))) (CategoryTheory.Iso.inv.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n X P))))
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] [_inst_3 : CategoryTheory.Abelian.{u3, u4} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u2, u1} D _inst_2] {F : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} [_inst_6 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F] [_inst_7 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G] (α : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) F G) (n : Nat) {X : C} (P : CategoryTheory.InjectiveResolution.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n)) X)) (CategoryTheory.NatTrans.app.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F G _inst_6 _inst_7 α n) X) (CategoryTheory.CategoryStruct.comp.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n)) X) (CategoryTheory.Iso.hom.{u2, u1} D _inst_2 (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n X P)) (CategoryTheory.CategoryStruct.comp.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n)) X) (Prefunctor.map.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)) (CategoryTheory.NatTrans.app.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.NatTrans.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F G _inst_6 _inst_7 α (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (CategoryTheory.Iso.inv.{u2, u1} D _inst_2 (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n)) X) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n X P))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_eq CategoryTheory.NatTrans.rightDerived_eqₓ'. -/
/-- A component of the natural transformation between right-derived functors can be computed
using a chosen injective resolution.
@@ -255,10 +246,7 @@ theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits
#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono
/- warning: category_theory.abelian.functor.exact_of_map_injective_resolution -> CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) {X : C} [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) [_inst_6 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F], CategoryTheory.Exact.{u1, u2} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Abelian.hasKernels.{u1, u2} D _inst_2 _inst_4) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F (HomologicalComplex.x.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) X) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F (HomologicalComplex.x.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))) (HomologicalComplex.xNext.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u2, u1} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F _inst_5 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 F (HomologicalComplex.x.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) X) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (HomologicalComplex.x.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (HomologicalComplex.Hom.f.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) X) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (CategoryTheory.InjectiveResolution.ι.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))) (HomologicalComplex.dFrom.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u2, u1} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F _inst_5 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) {X : C} [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) [_inst_6 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F], CategoryTheory.Exact.{u1, u2} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} D _inst_2 _inst_4)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) (HomologicalComplex.X.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3))) X) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) (HomologicalComplex.X.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) (HomologicalComplex.xNext.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u2, u1} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F _inst_5 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) (HomologicalComplex.X.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3))) X) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (HomologicalComplex.X.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (HomologicalComplex.Hom.f.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3))) X) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (CategoryTheory.InjectiveResolution.ι.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) (HomologicalComplex.dFrom.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u2, u1} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F _inst_5 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolutionₓ'. -/
theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
Exact (F.map (P.ι.f 0))
@@ -308,10 +296,7 @@ def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveReso
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv
/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 X P) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P)) (CategoryTheory.CategoryStruct.id.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 X P) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P)) (CategoryTheory.CategoryStruct.id.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_invₓ'. -/
theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
@@ -330,10 +315,7 @@ theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFinite
#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv
/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 X P)) (CategoryTheory.CategoryStruct.id.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 X P)) (CategoryTheory.CategoryStruct.id.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_compₓ'. -/
theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
@@ -367,10 +349,7 @@ def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F]
#align category_theory.abelian.functor.right_derived_zero_to_self_app_iso CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso
/- warning: category_theory.abelian.functor.right_derived_zero_to_self_natural -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] {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) (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) (Q : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X Y f) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 Y Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) Y) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X Y f))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] {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) (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) (Q : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) Y) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X Y f) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 Y Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) Y) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X Y f))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_naturalₓ'. -/
/-- Given `P : InjectiveResolution X` and `Q : InjectiveResolution Y` and a morphism `f : X ⟶ Y`,
naturality of the square given by `right_derived_zero_to_self_natural`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ef95945cd48c932c9e034872bd25c3c220d9c946
@@ -65,11 +65,19 @@ variable {C : Type u} [Category.{v} C] {D : Type _} [Category D]
variable [Abelian C] [HasInjectiveResolutions C] [Abelian D]
+#print CategoryTheory.Functor.rightDerived /-
/-- The right derived functors of an additive functor. -/
def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
injectiveResolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homologyFunctor D _ n
#align category_theory.functor.right_derived CategoryTheory.Functor.rightDerived
+-/
+/- warning: category_theory.functor.right_derived_obj_iso -> CategoryTheory.Functor.rightDerivedObjIso is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_1.{u2, u1} C _inst_1 _inst_3)] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_2.{u2, u1} C _inst_1 _inst_3) X), CategoryTheory.Iso.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P)))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), CategoryTheory.Iso.{u4, u3} D _inst_2 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u4, succ u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u4, max u3 u4} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u4, max u3 u4} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u4, u3} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u4, u3} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u1, succ u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u4, max u3 u4} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u4, max u3 u4} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIsoₓ'. -/
/-- We can compute a right derived functor using a chosen injective resolution. -/
@[simps]
def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
@@ -82,6 +90,12 @@ def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
(HomotopyCategory.homologyFactors D _ n).app _
#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIso
+/- warning: category_theory.functor.right_derived_obj_injective_zero -> CategoryTheory.Functor.rightDerivedObjInjectiveZero is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjInjectiveZero._proof_1.{u2, u1} C _inst_1 _inst_3)] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (X : C) [_inst_7 : CategoryTheory.Injective.{u1, u2} C _inst_1 X], CategoryTheory.Iso.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 F X)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (X : C) [_inst_7 : CategoryTheory.Injective.{u1, u2} C _inst_1 X], CategoryTheory.Iso.{u4, u3} D _inst_2 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_2 F) X)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZeroₓ'. -/
/-- The 0-th derived functor of `F` on an injective object `X` is just `F.obj X`. -/
@[simps]
def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
@@ -93,6 +107,12 @@ def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Inj
open ZeroObject
+/- warning: category_theory.functor.right_derived_obj_injective_succ -> CategoryTheory.Functor.rightDerivedObjInjectiveSucc is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjInjectiveSucc._proof_1.{u2, u1} C _inst_1 _inst_3)] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) (X : C) [_inst_7 : CategoryTheory.Injective.{u1, u2} C _inst_1 X], CategoryTheory.Iso.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) X) (OfNat.ofNat.{u3} D 0 (OfNat.mk.{u3} D 0 (Zero.zero.{u3} D (CategoryTheory.Limits.HasZeroObject.zero'.{u4, u3} D _inst_2 (CategoryTheory.Abelian.hasZeroObject.{u4, u3} D _inst_2 _inst_5)))))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) (X : C) [_inst_7 : CategoryTheory.Injective.{u1, u2} C _inst_1 X], CategoryTheory.Iso.{u4, u3} D _inst_2 (Prefunctor.obj.{succ u1, succ u4, u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) X) (OfNat.ofNat.{u3} D 0 (Zero.toOfNat0.{u3} D (CategoryTheory.Limits.HasZeroObject.zero'.{u4, u3} D _inst_2 (CategoryTheory.Abelian.hasZeroObject.{u4, u3} D _inst_2 _inst_5))))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSuccₓ'. -/
/-- The higher derived functors vanish on injective objects. -/
@[simps inv]
def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
@@ -102,6 +122,12 @@ def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X
(CochainComplex.homologyFunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
+/- warning: category_theory.functor.right_derived_map_eq -> CategoryTheory.Functor.rightDerived_map_eq is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat) {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)) Y X) {P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X} {Q : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y} (g : Quiver.Hom.{succ u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)))) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)), (Eq.{succ u1} (Quiver.Hom.{succ u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)))) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) Y) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne))) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) Y) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (CategoryTheory.InjectiveResolution.ι.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y Q) g) (CategoryTheory.CategoryStruct.comp.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne))) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) Y) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) X) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (CategoryTheory.Functor.map.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) Y X f) (CategoryTheory.InjectiveResolution.ι.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P))) -> (Eq.{succ u4} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) Y) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X)) (CategoryTheory.Functor.map.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) Y X f) (CategoryTheory.CategoryStruct.comp.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) Y) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Iso.hom.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) Y) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q))) (CategoryTheory.Functor.rightDerivedObjIso.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n Y Q)) (CategoryTheory.CategoryStruct.comp.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q))) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.map.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q)) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (CategoryTheory.Functor.map.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) g)) (CategoryTheory.Iso.inv.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n X P)))))
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] [_inst_3 : CategoryTheory.Abelian.{u3, u4} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u2, u1} D _inst_2] (F : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F] (n : Nat) {X : C} {Y : C} (f : Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) Y X) {P : CategoryTheory.InjectiveResolution.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X} {Q : CategoryTheory.InjectiveResolution.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y} (g : Quiver.Hom.{succ u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)), (Eq.{succ u3} (Quiver.Hom.{succ u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (Prefunctor.obj.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) Y) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)) (CategoryTheory.CategoryStruct.comp.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (Prefunctor.obj.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) Y) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P) (CategoryTheory.InjectiveResolution.ι.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q) g) (CategoryTheory.CategoryStruct.comp.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (Prefunctor.obj.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) Y) (Prefunctor.obj.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) X) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P) (Prefunctor.map.{succ u3, succ u3, u4, max u4 u3} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, max u4 u3} C _inst_1 (CochainComplex.{u3, u4, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u3, u4} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3))) Y X f) (CategoryTheory.InjectiveResolution.ι.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) -> (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) Y) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X)) (Prefunctor.map.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) Y X f) (CategoryTheory.CategoryStruct.comp.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) Y) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q))) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (CategoryTheory.Iso.hom.{u2, u1} D _inst_2 (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) Y) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q))) (CategoryTheory.Functor.rightDerivedObjIso.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n Y Q)) (CategoryTheory.CategoryStruct.comp.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q))) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.map.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)) (Prefunctor.map.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) Y Q) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P) g)) (CategoryTheory.Iso.inv.{u2, u1} D _inst_2 (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n X P)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.right_derived_map_eq CategoryTheory.Functor.rightDerived_map_eqₓ'. -/
/-- We can compute a right derived functor on a morphism using a descent of that morphism
to a cochain map between chosen injective resolutions.
-/
@@ -129,6 +155,7 @@ theorem Functor.rightDerived_map_eq (F : C ⥤ D) [F.Additive] (n : ℕ) {X Y :
simp only [InjectiveResolution.homotopy_equiv_inv_ι]
#align category_theory.functor.right_derived_map_eq CategoryTheory.Functor.rightDerived_map_eq
+#print CategoryTheory.NatTrans.rightDerived /-
/-- The natural transformation between right-derived functors induced by a natural transformation.-/
@[simps]
def NatTrans.rightDerived {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) (n : ℕ) :
@@ -136,7 +163,14 @@ def NatTrans.rightDerived {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶
whiskerLeft (injectiveResolutions C)
(whiskerRight (NatTrans.mapHomotopyCategory α _) (HomotopyCategory.homologyFunctor D _ n))
#align category_theory.nat_trans.right_derived CategoryTheory.NatTrans.rightDerived
+-/
+/- warning: category_theory.nat_trans.right_derived_id -> CategoryTheory.NatTrans.rightDerived_id is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] (F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] (n : Nat), Eq.{succ (max u2 u4)} (Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F F _inst_6 _inst_6 (CategoryTheory.CategoryStruct.id.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2)) F) n) (CategoryTheory.CategoryStruct.id.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2)) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n))
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] [_inst_3 : CategoryTheory.Abelian.{u3, u4} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u2, u1} D _inst_2] (F : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) [_inst_6 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F] (n : Nat), Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F F _inst_6 _inst_6 (CategoryTheory.CategoryStruct.id.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2)) F) n) (CategoryTheory.CategoryStruct.id.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2)) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n))
+Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_idₓ'. -/
@[simp]
theorem NatTrans.rightDerived_id (F : C ⥤ D) [F.Additive] (n : ℕ) :
NatTrans.rightDerived (𝟙 F) n = 𝟙 (F.rightDerived n) :=
@@ -145,6 +179,12 @@ theorem NatTrans.rightDerived_id (F : C ⥤ D) [F.Additive] (n : ℕ) :
rfl
#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_id
+/- warning: category_theory.nat_trans.right_derived_comp -> CategoryTheory.NatTrans.rightDerived_comp is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] {F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} {H : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] [_inst_7 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G] [_inst_8 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) H] (α : Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) F G) (β : Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) G H) (n : Nat), Eq.{succ (max u2 u4)} (Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 H _inst_8 n)) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F H _inst_6 _inst_8 (CategoryTheory.CategoryStruct.comp.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2)) F G H α β) n) (CategoryTheory.CategoryStruct.comp.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2)) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 H _inst_8 n) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F G _inst_6 _inst_7 α n) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G H _inst_7 _inst_8 β n))
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] [_inst_3 : CategoryTheory.Abelian.{u3, u4} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u2, u1} D _inst_2] {F : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} {H : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} [_inst_6 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F] [_inst_7 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G] [_inst_8 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) H] (α : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) F G) (β : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) G H) (n : Nat), Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 H _inst_8 n)) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F H _inst_6 _inst_8 (CategoryTheory.CategoryStruct.comp.{max u2 u4, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2)) F G H α β) n) (CategoryTheory.CategoryStruct.comp.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2)) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 H _inst_8 n) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F G _inst_6 _inst_7 α n) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G H _inst_7 _inst_8 β n))
+Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_compₓ'. -/
@[simp, nolint simp_nf]
theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [H.Additive]
(α : F ⟶ G) (β : G ⟶ H) (n : ℕ) :
@@ -152,6 +192,12 @@ theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [
simp [nat_trans.right_derived]
#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_comp
+/- warning: category_theory.nat_trans.right_derived_eq -> CategoryTheory.NatTrans.rightDerived_eq is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u4, u3} D _inst_2] {F : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2} [_inst_6 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F] [_inst_7 : CategoryTheory.Functor.Additive.{u2, u3, u1, u4} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G] (α : Quiver.Hom.{succ (max u2 u4), max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max u1 u4 u2 u3} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) F G) (n : Nat) {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) X)) (CategoryTheory.NatTrans.app.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) (CategoryTheory.NatTrans.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F G _inst_6 _inst_7 α n) X) (CategoryTheory.CategoryStruct.comp.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) X) (CategoryTheory.Iso.hom.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n X P)) (CategoryTheory.CategoryStruct.comp.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) X) (CategoryTheory.Functor.map.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u4, u3} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u4, u3} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5))) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P)) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P)) (CategoryTheory.NatTrans.app.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.NatTrans.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) F G _inst_6 _inst_7 α (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P))) (CategoryTheory.Iso.inv.{u4, u3} D _inst_2 (CategoryTheory.Functor.obj.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) X) (CategoryTheory.Functor.obj.{u4, u4, max u3 u4, u3} (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) D _inst_2 (homologyFunctor.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Abelian.hasEqualizers.{u4, u3} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_3.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u4, u3} D _inst_2 (CategoryTheory.Functor.rightDerivedObjIso._proof_4.{u3, u4} D _inst_2 _inst_5) (CategoryTheory.Functor.rightDerivedObjIso._proof_5.{u3, u4} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCokernels.{u4, u3} D _inst_2 _inst_5) n) (CategoryTheory.Functor.obj.{u1, u4, max u2 u1, max u3 u4} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u4, u3, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u4, u3} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u3, u4} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u4, u3} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Functor.rightDerivedObjIso._proof_6.{u2, u1} C _inst_1 _inst_3) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u1, u2, u3, u4} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n X P))))
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] [_inst_3 : CategoryTheory.Abelian.{u3, u4} C _inst_1] [_inst_4 : CategoryTheory.HasInjectiveResolutions.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3))] [_inst_5 : CategoryTheory.Abelian.{u2, u1} D _inst_2] {F : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2} [_inst_6 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F] [_inst_7 : CategoryTheory.Functor.Additive.{u4, u1, u3, u2} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G] (α : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) F G) (n : Nat) {X : C} (P : CategoryTheory.InjectiveResolution.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X), Eq.{succ u2} (Quiver.Hom.{succ u2, u1} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n)) X)) (CategoryTheory.NatTrans.app.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n) (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n) (CategoryTheory.NatTrans.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F G _inst_6 _inst_7 α n) X) (CategoryTheory.CategoryStruct.comp.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n)) X) (CategoryTheory.Iso.hom.{u2, u1} D _inst_2 (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n)) X) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 F _inst_6 n X P)) (CategoryTheory.CategoryStruct.comp.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n)) X) (Prefunctor.map.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P)) (CategoryTheory.NatTrans.app.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F _inst_6 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.NatTrans.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) F G _inst_6 _inst_7 α (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (CategoryTheory.Iso.inv.{u2, u1} D _inst_2 (Prefunctor.obj.{succ u3, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u2, u4, u1} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n)) X) (Prefunctor.obj.{succ u2, succ u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u1 u2, u1} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) D _inst_2 (homologyFunctor.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasImageMapsOfHasStrongEpiImages.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Limits.hasStrongEpiImages_of_hasPullbacks_of_hasEqualizers.{u2, u1} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasPullbacks.{u2, u1} D _inst_2 _inst_5) (CategoryTheory.Abelian.hasEqualizers.{u2, u1} D _inst_2 _inst_5))) (CategoryTheory.Limits.hasCokernels_of_hasCoequalizers.{u2, u1} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (CategoryTheory.Abelian.hasCoequalizers.{u2, u1} D _inst_2 _inst_5)) n)) (Prefunctor.obj.{succ u3, succ u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u3, u2, max u4 u3, max u1 u2} (HomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u3, u4, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u1, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, u1} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u3, u4, 0, u1, u2} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u2, u1} D _inst_2 _inst_5) G _inst_7 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u3, u4} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u3, u4} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u3, u4} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u3, u4} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u3, u4} C _inst_1 _inst_3)) X P))) (CategoryTheory.Functor.rightDerivedObjIso.{u3, u4, u1, u2} C _inst_1 D _inst_2 _inst_3 _inst_4 _inst_5 G _inst_7 n X P))))
+Case conversion may be inaccurate. Consider using '#align category_theory.nat_trans.right_derived_eq CategoryTheory.NatTrans.rightDerived_eqₓ'. -/
/-- A component of the natural transformation between right-derived functors can be computed
using a chosen injective resolution.
-/
@@ -194,6 +240,12 @@ open CategoryTheory.Preadditive
variable [Abelian C] [Abelian D] [Additive F]
+/- warning: category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono -> CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) {X : C} {Y : C} {Z : C} {f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y} {g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Z} [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] [_inst_7 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], (CategoryTheory.Exact.{u1, u2} C _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasKernels.{u1, u2} C _inst_1 _inst_3) X Y Z f g) -> (CategoryTheory.Exact.{u1, u2} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Abelian.hasKernels.{u1, u2} D _inst_2 _inst_4) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F Z) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X Y f) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 F Y Z g))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) {X : C} {Y : C} {Z : C} {f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y} {g : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Y Z} [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] [_inst_7 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], (CategoryTheory.Exact.{u1, u2} C _inst_1 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3)) X Y Z f g) -> (CategoryTheory.Exact.{u1, u2} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} D _inst_2 _inst_4)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) Z) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X Y f) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) Y Z g))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_monoₓ'. -/
/-- If `preserves_finite_limits F` and `mono f`, then `exact (F.map f) (F.map g)` if
`exact f g`. -/
theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits F] [Mono f]
@@ -202,7 +254,13 @@ theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits
Limits.isLimitForkMapOfIsLimit' _ ex.w (Abelian.isLimitOfExactOfMono _ _ ex)
#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono
-theorem exact_of_map_injective_resolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
+/- warning: category_theory.abelian.functor.exact_of_map_injective_resolution -> CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) {X : C} [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) [_inst_6 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F], CategoryTheory.Exact.{u1, u2} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Abelian.hasKernels.{u1, u2} D _inst_2 _inst_4) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F (HomologicalComplex.x.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) X) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F (HomologicalComplex.x.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))) (HomologicalComplex.xNext.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u2, u1} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F _inst_5 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 F (HomologicalComplex.x.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) X) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (HomologicalComplex.x.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (HomologicalComplex.Hom.f.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3)) X) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (CategoryTheory.InjectiveResolution.ι.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))) (HomologicalComplex.dFrom.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (HomologicalComplex.CategoryTheory.category.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u2, u1} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F _inst_5 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) Nat.hasOne)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) {X : C} [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) [_inst_6 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F], CategoryTheory.Exact.{u1, u2} D _inst_2 (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} D _inst_2 _inst_4)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) (HomologicalComplex.X.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3))) X) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) (HomologicalComplex.X.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) (HomologicalComplex.xNext.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u2, u1} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F _inst_5 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) (HomologicalComplex.X.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3))) X) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (HomologicalComplex.X.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (HomologicalComplex.Hom.f.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, u2, max u2 u1} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, max u2 u1} C _inst_1 (CochainComplex.{u1, u2, 0} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CochainComplex.single₀.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3))) X) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (CategoryTheory.InjectiveResolution.ι.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) (HomologicalComplex.dFrom.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (HomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, 0} Nat D _inst_2 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4)) (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring))) (CategoryTheory.Functor.mapHomologicalComplex.{u1, u2, 0, u2, u1} Nat C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) D _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F _inst_5 (ComplexShape.up.{0} Nat (AddRightCancelMonoid.toAddRightCancelSemigroup.{0} Nat (AddCancelMonoid.toAddRightCancelMonoid.{0} Nat (AddCancelCommMonoid.toAddCancelMonoid.{0} Nat (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (CanonicallyOrderedCommSemiring.toOne.{0} Nat Nat.canonicallyOrderedCommSemiring)))) (CategoryTheory.InjectiveResolution.cocomplex.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X P)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolutionₓ'. -/
+theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
Exact (F.map (P.ι.f 0))
(((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0) :=
Preadditive.exact_of_iso_of_exact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
@@ -210,8 +268,14 @@ theorem exact_of_map_injective_resolution (P : InjectiveResolution X) [Preserves
(HomologicalComplex.xNextIso ((F.mapHomologicalComplex _).obj P.cocomplex) rfl).symm (by simp)
(by rw [iso.refl_hom, category.id_comp, iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr )
(preserves_exact_of_preserves_finite_limits_of_mono _ P.exact₀)
-#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injective_resolution
-
+#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution
+
+/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp._proof_1.{u2, u1} C _inst_1 _inst_3) X) -> (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) -> (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppₓ'. -/
/-- Given `P : InjectiveResolution X`, a morphism `(F.right_derived 0).obj X ⟶ F.obj X` given
`preserves_finite_limits F`. -/
def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
@@ -225,6 +289,12 @@ def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X
(asIso (kernel.lift _ _ (exact_of_map_injective_resolution F P).w)).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp
+/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_inv -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv._proof_1.{u2, u1} C _inst_1 _inst_3) X) -> (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) -> (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInvₓ'. -/
/-- Given `P : InjectiveResolution X`, a morphism `F.obj X ⟶ (F.right_derived 0).obj X`. -/
def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveResolution X) :
F.obj X ⟶ (F.rightDerived 0).obj X :=
@@ -237,6 +307,12 @@ def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveReso
(rightDerivedObjIso F 0 P).inv
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv
+/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 X P) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P)) (CategoryTheory.CategoryStruct.id.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 X P) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P)) (CategoryTheory.CategoryStruct.id.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_invₓ'. -/
theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
right_derived_zero_to_self_app F P ≫ right_derived_zero_to_self_app_inv F P = 𝟙 _ :=
@@ -253,6 +329,12 @@ theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFinite
convert category.id_comp (cokernel.π _)
#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv
+/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 X P)) (CategoryTheory.CategoryStruct.id.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C} (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 X P)) (CategoryTheory.CategoryStruct.id.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_compₓ'. -/
theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) :
right_derived_zero_to_self_app_inv F P ≫ right_derived_zero_to_self_app F P = 𝟙 _ :=
@@ -267,6 +349,12 @@ theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteL
simp
#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp
+/- warning: category_theory.abelian.functor.right_derived_zero_to_self_app_iso -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso._proof_1.{u2, u1} C _inst_1 _inst_3) X) -> (CategoryTheory.Iso.{u1, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] [_inst_7 : CategoryTheory.Limits.PreservesFiniteLimits.{u1, u1, u2, u2} C _inst_1 D _inst_2 F] {X : C}, (CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) -> (CategoryTheory.Iso.{u1, u2} D _inst_2 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_app_iso CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIsoₓ'. -/
/-- Given `P : InjectiveResolution X`, the isomorphism `(F.right_derived 0).obj X ≅ F.obj X` if
`preserves_finite_limits F`. -/
def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
@@ -278,9 +366,15 @@ def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F]
inv_hom_id' := right_derived_zero_to_self_app_inv_comp _ P
#align category_theory.abelian.functor.right_derived_zero_to_self_app_iso CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso
+/- warning: category_theory.abelian.functor.right_derived_zero_to_self_natural -> CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] {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) (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) (Q : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.CategoryTheory.Limits.hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F Y) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) Y) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X Y f) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 Y Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 F X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) Y) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P) (CategoryTheory.Functor.map.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.CategoryTheory.hasInjectiveResolutions.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) X Y f))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (F : CategoryTheory.Functor.{u1, u1, u2, u2} C _inst_1 D _inst_2) [_inst_3 : CategoryTheory.Abelian.{u1, u2} C _inst_1] [_inst_4 : CategoryTheory.Abelian.{u1, u2} D _inst_2] [_inst_5 : CategoryTheory.Functor.Additive.{u2, u2, u1, u1} C D _inst_1 _inst_2 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Abelian.toPreadditive.{u1, u2} D _inst_2 _inst_4) F] [_inst_6 : CategoryTheory.EnoughInjectives.{u1, u2} C _inst_1] {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) (P : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) X) (Q : CategoryTheory.InjectiveResolution.{u1, u2} C _inst_1 (CategoryTheory.Abelian.hasZeroObject.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_3)) (CategoryTheory.Abelian.hasEqualizers.{u1, u2} C _inst_1 _inst_3) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3)) Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) Y)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) Y) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) Y) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X Y f) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 Y Q)) (CategoryTheory.CategoryStruct.comp.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 F) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) Y) (CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv.{u1, u2} C _inst_1 D _inst_2 F _inst_3 _inst_4 _inst_5 _inst_6 X P) (Prefunctor.map.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} D (CategoryTheory.Category.toCategoryStruct.{u1, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 D _inst_2 (CategoryTheory.Functor.rightDerived.{u1, u2, u2, u1} C _inst_1 D _inst_2 _inst_3 (CategoryTheory.InjectiveResolution.instHasInjectiveResolutionsHasZeroObjectPreadditiveHasZeroMorphismsToPreadditiveHasEqualizersHasImages_of_hasStrongEpiMonoFactorisationsInstHasStrongEpiMonoFactorisations.{u1, u2} C _inst_1 _inst_3 _inst_6) _inst_4 F _inst_5 (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))) X Y f))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_naturalₓ'. -/
/-- Given `P : InjectiveResolution X` and `Q : InjectiveResolution Y` and a morphism `f : X ⟶ Y`,
naturality of the square given by `right_derived_zero_to_self_natural`. -/
-theorem rightDerived_zero_to_self_natural [EnoughInjectives C] {X : C} {Y : C} (f : X ⟶ Y)
+theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f : X ⟶ Y)
(P : InjectiveResolution X) (Q : InjectiveResolution Y) :
F.map f ≫ right_derived_zero_to_self_app_inv F Q =
right_derived_zero_to_self_app_inv F P ≫ (F.rightDerived 0).map f :=
@@ -299,8 +393,9 @@ theorem rightDerived_zero_to_self_natural [EnoughInjectives C] {X : C} {Y : C} (
map_homological_complex_map_f, ← functor.map_comp,
show f ≫ Q.ι.f 0 = P.ι.f 0 ≫ (InjectiveResolution.desc f Q P).f 0 from
HomologicalComplex.congr_hom (InjectiveResolution.desc_commutes f Q P).symm 0]
-#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerived_zero_to_self_natural
+#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural
+#print CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf /-
/-- Given `preserves_finite_limits F`, the natural isomorphism `(F.right_derived 0) ≅ F`. -/
def rightDerivedZeroIsoSelf [EnoughInjectives C] [PreservesFiniteLimits F] : F.rightDerived 0 ≅ F :=
Iso.symm <|
@@ -308,6 +403,7 @@ def rightDerivedZeroIsoSelf [EnoughInjectives C] [PreservesFiniteLimits F] : F.r
(fun X => (right_derived_zero_to_self_app_iso _ (InjectiveResolution.of X)).symm) fun X Y f =>
right_derived_zero_to_self_natural _ _ _ _
#align category_theory.abelian.functor.right_derived_zero_iso_self CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf
+-/
end CategoryTheory.Abelian.Functor
mathlib commit https://github.com/leanprover-community/mathlib/commit/cd8fafa2fac98e1a67097e8a91ad9901cfde48af
@@ -196,21 +196,21 @@ variable [Abelian C] [Abelian D] [Additive F]
/-- If `preserves_finite_limits F` and `mono f`, then `exact (F.map f) (F.map g)` if
`exact f g`. -/
-theorem preservesExactOfPreservesFiniteLimitsOfMono [PreservesFiniteLimits F] [Mono f]
+theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits F] [Mono f]
(ex : Exact f g) : Exact (F.map f) (F.map g) :=
- Abelian.exactOfIsKernel _ _ (by simp [← functor.map_comp, ex.w]) <|
+ Abelian.exact_of_is_kernel _ _ (by simp [← functor.map_comp, ex.w]) <|
Limits.isLimitForkMapOfIsLimit' _ ex.w (Abelian.isLimitOfExactOfMono _ _ ex)
-#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preservesExactOfPreservesFiniteLimitsOfMono
+#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono
-theorem exactOfMapInjectiveResolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
+theorem exact_of_map_injective_resolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
Exact (F.map (P.ι.f 0))
(((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0) :=
- Preadditive.exactOfIsoOfExact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
+ Preadditive.exact_of_iso_of_exact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
(Iso.refl _)
(HomologicalComplex.xNextIso ((F.mapHomologicalComplex _).obj P.cocomplex) rfl).symm (by simp)
(by rw [iso.refl_hom, category.id_comp, iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr )
(preserves_exact_of_preserves_finite_limits_of_mono _ P.exact₀)
-#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exactOfMapInjectiveResolution
+#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injective_resolution
/-- Given `P : InjectiveResolution X`, a morphism `(F.right_derived 0).obj X ⟶ F.obj X` given
`preserves_finite_limits F`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/17ad94b4953419f3e3ce3e77da3239c62d1d09f0
@@ -196,21 +196,21 @@ variable [Abelian C] [Abelian D] [Additive F]
/-- If `preserves_finite_limits F` and `mono f`, then `exact (F.map f) (F.map g)` if
`exact f g`. -/
-theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits F] [Mono f]
+theorem preservesExactOfPreservesFiniteLimitsOfMono [PreservesFiniteLimits F] [Mono f]
(ex : Exact f g) : Exact (F.map f) (F.map g) :=
- Abelian.exact_of_is_kernel _ _ (by simp [← functor.map_comp, ex.w]) <|
+ Abelian.exactOfIsKernel _ _ (by simp [← functor.map_comp, ex.w]) <|
Limits.isLimitForkMapOfIsLimit' _ ex.w (Abelian.isLimitOfExactOfMono _ _ ex)
-#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono
+#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preservesExactOfPreservesFiniteLimitsOfMono
-theorem exact_of_map_injective_resolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
+theorem exactOfMapInjectiveResolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
Exact (F.map (P.ι.f 0))
(((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0) :=
- Preadditive.exact_of_iso_of_exact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
+ Preadditive.exactOfIsoOfExact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
(Iso.refl _)
(HomologicalComplex.xNextIso ((F.mapHomologicalComplex _).obj P.cocomplex) rfl).symm (by simp)
(by rw [iso.refl_hom, category.id_comp, iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr )
(preserves_exact_of_preserves_finite_limits_of_mono _ P.exact₀)
-#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injective_resolution
+#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exactOfMapInjectiveResolution
/-- Given `P : InjectiveResolution X`, a morphism `(F.right_derived 0).obj X ⟶ F.obj X` given
`preserves_finite_limits F`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.
@@ -197,7 +197,8 @@ lemma NatTrans.rightDerivedToHomotopyCategory_comp {F G H : C ⥤ D} (α : F ⟶
NatTrans.rightDerivedToHomotopyCategory α ≫
NatTrans.rightDerivedToHomotopyCategory β := rfl
-/-- The natural transformation between right-derived functors induced by a natural transformation.-/
+/-- The natural transformation between right-derived functors
+induced by a natural transformation. -/
noncomputable def NatTrans.rightDerived
{F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) (n : ℕ) :
F.rightDerived n ⟶ G.rightDerived n :=
This PR refactors the construction of left derived functors using the new homology API: this also affects the dependencies (Ext functors, group cohomology, local cohomology). As a result, the old homology API is no longer used in any significant way in mathlib. Then, with this PR, the homology refactor is essentially complete.
The organization of the files was made more coherent: the definition of a projective resolution is in Preadditive.ProjectiveResolution
, the existence of resolutions when there are enough projectives is shown in Abelian.ProjectiveResolution
, and the left derived functor is constructed in Abelian.LeftDerived
; the dual results are in Preadditive.InjectiveResolution
, Abelian.InjectiveResolution
and Abelian.RightDerived
.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -30,8 +30,6 @@ natural transformations between the original additive functors,
and show how to compute the components.
## Main results
-* `Functor.rightDerivedObj_injective_zero`: the `0`-th derived functor of `F` on
- an injective object `X` is isomorphic to `F.obj X`.
* `Functor.isZero_rightDerived_obj_injective_succ`: injective objects have no higher
right derived functor.
* `NatTrans.rightDerived`: the natural isomorphism between right derived functors
@@ -336,7 +334,7 @@ instance (X : C) : IsIso (F.toRightDerivedZero.app X) := by
dsimp [Functor.toRightDerivedZero]
infer_instance
-instance [PreservesFiniteLimits F] : IsIso F.toRightDerivedZero :=
+instance : IsIso F.toRightDerivedZero :=
NatIso.isIso_of_isIso_app _
namespace Functor
@@ -1,13 +1,11 @@
/-
Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
-Authors: Jujian Zhang, Scott Morrison
+Authors: Jujian Zhang, Scott Morrison, Joël Riou
-/
import Mathlib.CategoryTheory.Abelian.InjectiveResolution
import Mathlib.Algebra.Homology.Additive
-import Mathlib.CategoryTheory.Limits.Constructions.EpiMono
import Mathlib.CategoryTheory.Abelian.Homology
-import Mathlib.CategoryTheory.Abelian.Exact
#align_import category_theory.abelian.right_derived from "leanprover-community/mathlib"@"024a4231815538ac739f52d08dd20a55da0d6b23"
@@ -17,315 +15,360 @@ import Mathlib.CategoryTheory.Abelian.Exact
We define the right-derived functors `F.rightDerived n : C ⥤ D` for any additive functor `F`
out of a category with injective resolutions.
-The definition is
-```
-injectiveResolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homologyFunctor D _ n
-```
-that is, we pick an injective resolution (thought of as an object of the homotopy category),
-we apply `F` objectwise, and compute `n`-th homology.
+We first define a functor
+`F.rightDerivedToHomotopyCategory : C ⥤ HomotopyCategory D (ComplexShape.up ℕ)` which is
+`injectiveResolutions C ⋙ F.mapHomotopyCategory _`. We show that if `X : C` and
+`I : InjectiveResolution X`, then `F.rightDerivedToHomotopyCategory.obj X` identifies
+to the image in the homotopy category of the functor `F` applied objectwise to `I.cocomplex`
+(this isomorphism is `I.isoRightDerivedToHomotopyCategoryObj F`).
-We show that these right-derived functors can be calculated
-on objects using any choice of injective resolution,
-and on morphisms by any choice of lift to a cochain map between chosen injective resolutions.
+Then, the right-derived functors `F.rightDerived n : C ⥤ D` are obtained by composing
+`F.rightDerivedToHomotopyCategory` with the homology functors on the homotopy category.
Similarly we define natural transformations between right-derived functors coming from
natural transformations between the original additive functors,
and show how to compute the components.
## Main results
-* `CategoryTheory.Functor.rightDerivedObj_injective_zero`: the `0`-th derived functor of `F` on
+* `Functor.rightDerivedObj_injective_zero`: the `0`-th derived functor of `F` on
an injective object `X` is isomorphic to `F.obj X`.
-* `CategoryTheory.Functor.rightDerivedObj_injective_succ`: injective objects have no higher
+* `Functor.isZero_rightDerived_obj_injective_succ`: injective objects have no higher
right derived functor.
-* `CategoryTheory.NatTrans.rightDerived`: the natural isomorphism between right derived functors
+* `NatTrans.rightDerived`: the natural isomorphism between right derived functors
induced by natural transformation.
-
-Now, we assume `PreservesFiniteLimits F`, then
-* `CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono`: if `f` is
- mono and `Exact f g`, then `Exact (F.map f) (F.map g)`.
-* `CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf`: if there are enough injectives,
- then there is a natural isomorphism `(F.rightDerived 0) ≅ F`.
+* `Functor.toRightDerivedZero`: the natural transformation `F ⟶ F.rightDerived 0`,
+ which is an isomorphism when `F` is left exact (i.e. preserves finite limits),
+ see also `Functor.rightDerivedZeroIsoSelf`.
-/
-
-noncomputable section
-
-open CategoryTheory
-
-open CategoryTheory.Limits
+universe v u
namespace CategoryTheory
-universe v u
+open Category Limits
variable {C : Type u} [Category.{v} C] {D : Type*} [Category D]
+ [Abelian C] [HasInjectiveResolutions C] [Abelian D]
+
+/-- When `F : C ⥤ D` is an additive functor, this is
+the functor `C ⥤ HomotopyCategory D (ComplexShape.up ℕ)` which
+sends `X : C` to `F` applied to an injective resolution of `X`. -/
+noncomputable def Functor.rightDerivedToHomotopyCategory (F : C ⥤ D) [F.Additive] :
+ C ⥤ HomotopyCategory D (ComplexShape.up ℕ) :=
+ injectiveResolutions C ⋙ F.mapHomotopyCategory _
+
+/-- If `I : InjectiveResolution Z` and `F : C ⥤ D` is an additive functor, this is
+an isomorphism between `F.rightDerivedToHomotopyCategory.obj X` and the complex
+obtained by applying `F` to `I.cocomplex`. -/
+noncomputable def InjectiveResolution.isoRightDerivedToHomotopyCategoryObj {X : C}
+ (I : InjectiveResolution X) (F : C ⥤ D) [F.Additive] :
+ F.rightDerivedToHomotopyCategory.obj X ≅
+ (F.mapHomologicalComplex _ ⋙ HomotopyCategory.quotient _ _).obj I.cocomplex :=
+ (F.mapHomotopyCategory _).mapIso I.iso ≪≫
+ (F.mapHomotopyCategoryFactors _).app I.cocomplex
+
+@[reassoc]
+lemma InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_hom_naturality
+ {X Y : C} (f : X ⟶ Y) (I : InjectiveResolution X) (J : InjectiveResolution Y)
+ (φ : I.cocomplex ⟶ J.cocomplex) (comm : I.ι.f 0 ≫ φ.f 0 = f ≫ J.ι.f 0)
+ (F : C ⥤ D) [F.Additive] :
+ F.rightDerivedToHomotopyCategory.map f ≫ (J.isoRightDerivedToHomotopyCategoryObj F).hom =
+ (I.isoRightDerivedToHomotopyCategoryObj F).hom ≫
+ (F.mapHomologicalComplex _ ⋙ HomotopyCategory.quotient _ _).map φ := by
+ dsimp [Functor.rightDerivedToHomotopyCategory, isoRightDerivedToHomotopyCategoryObj]
+ rw [← Functor.map_comp_assoc, iso_hom_naturality f I J φ comm, Functor.map_comp,
+ assoc, assoc]
+ erw [(F.mapHomotopyCategoryFactors (ComplexShape.up ℕ)).hom.naturality]
+ rfl
-variable [Abelian C] [HasInjectiveResolutions C] [Abelian D]
+@[reassoc]
+lemma InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_inv_naturality
+ {X Y : C} (f : X ⟶ Y) (I : InjectiveResolution X) (J : InjectiveResolution Y)
+ (φ : I.cocomplex ⟶ J.cocomplex) (comm : I.ι.f 0 ≫ φ.f 0 = f ≫ J.ι.f 0)
+ (F : C ⥤ D) [F.Additive] :
+ (I.isoRightDerivedToHomotopyCategoryObj F).inv ≫ F.rightDerivedToHomotopyCategory.map f =
+ (F.mapHomologicalComplex _ ⋙ HomotopyCategory.quotient _ _).map φ ≫
+ (J.isoRightDerivedToHomotopyCategoryObj F).inv := by
+ rw [← cancel_epi (I.isoRightDerivedToHomotopyCategoryObj F).hom, Iso.hom_inv_id_assoc]
+ dsimp
+ rw [← isoRightDerivedToHomotopyCategoryObj_hom_naturality_assoc f I J φ comm F,
+ Iso.hom_inv_id, comp_id]
/-- The right derived functors of an additive functor. -/
-def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
- injectiveResolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homology'Functor D _ n
+noncomputable def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
+ F.rightDerivedToHomotopyCategory ⋙ HomotopyCategory.homologyFunctor D _ n
#align category_theory.functor.right_derived CategoryTheory.Functor.rightDerived
/-- We can compute a right derived functor using a chosen injective resolution. -/
-@[simps!]
-def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
- (P : InjectiveResolution X) :
+noncomputable def InjectiveResolution.isoRightDerivedObj {X : C} (I : InjectiveResolution X)
+ (F : C ⥤ D) [F.Additive] (n : ℕ) :
(F.rightDerived n).obj X ≅
- (homology'Functor D _ n).obj ((F.mapHomologicalComplex _).obj P.cocomplex) :=
- (HomotopyCategory.homology'Functor D _ n).mapIso
- (HomotopyCategory.isoOfHomotopyEquiv
- (F.mapHomotopyEquiv (InjectiveResolution.homotopyEquiv _ P))) ≪≫
- (HomotopyCategory.homology'Factors D _ n).app _
-#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIso
-
-/-- The 0-th derived functor of `F` on an injective object `X` is just `F.obj X`. -/
-@[simps!]
-def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
- (F.rightDerived 0).obj X ≅ F.obj X :=
- F.rightDerivedObjIso 0 (InjectiveResolution.self X) ≪≫
- (homology'Functor _ _ _).mapIso
- ((HomologicalComplex.singleMapHomologicalComplex F (ComplexShape.up ℕ) 0).app X) ≪≫
- (CochainComplex.homologyFunctor0Single₀ D).app (F.obj X)
-#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZero
-
-open ZeroObject
+ (HomologicalComplex.homologyFunctor D _ n).obj
+ ((F.mapHomologicalComplex _).obj I.cocomplex) :=
+ (HomotopyCategory.homologyFunctor D _ n).mapIso
+ (I.isoRightDerivedToHomotopyCategoryObj F) ≪≫
+ (HomotopyCategory.homologyFunctorFactors D (ComplexShape.up ℕ) n).app _
+
+@[reassoc]
+lemma InjectiveResolution.isoRightDerivedObj_hom_naturality
+ {X Y : C} (f : X ⟶ Y) (I : InjectiveResolution X) (J : InjectiveResolution Y)
+ (φ : I.cocomplex ⟶ J.cocomplex) (comm : I.ι.f 0 ≫ φ.f 0 = f ≫ J.ι.f 0)
+ (F : C ⥤ D) [F.Additive] (n : ℕ) :
+ (F.rightDerived n).map f ≫ (J.isoRightDerivedObj F n).hom =
+ (I.isoRightDerivedObj F n).hom ≫
+ (F.mapHomologicalComplex _ ⋙ HomologicalComplex.homologyFunctor _ _ n).map φ := by
+ dsimp [isoRightDerivedObj, Functor.rightDerived]
+ rw [assoc, ← Functor.map_comp_assoc,
+ InjectiveResolution.isoRightDerivedToHomotopyCategoryObj_hom_naturality f I J φ comm F,
+ Functor.map_comp, assoc]
+ erw [(HomotopyCategory.homologyFunctorFactors D (ComplexShape.up ℕ) n).hom.naturality]
+ rfl
+
+@[reassoc]
+lemma InjectiveResolution.isoRightDerivedObj_inv_naturality
+ {X Y : C} (f : X ⟶ Y) (I : InjectiveResolution X) (J : InjectiveResolution Y)
+ (φ : I.cocomplex ⟶ J.cocomplex) (comm : I.ι.f 0 ≫ φ.f 0 = f ≫ J.ι.f 0)
+ (F : C ⥤ D) [F.Additive] (n : ℕ) :
+ (I.isoRightDerivedObj F n).inv ≫ (F.rightDerived n).map f =
+ (F.mapHomologicalComplex _ ⋙ HomologicalComplex.homologyFunctor _ _ n).map φ ≫
+ (J.isoRightDerivedObj F n).inv := by
+ rw [← cancel_mono (J.isoRightDerivedObj F n).hom, assoc, assoc,
+ InjectiveResolution.isoRightDerivedObj_hom_naturality f I J φ comm F n,
+ Iso.inv_hom_id_assoc, Iso.inv_hom_id, comp_id]
/-- The higher derived functors vanish on injective objects. -/
-@[simps! inv]
-def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
- (F.rightDerived (n + 1)).obj X ≅ 0 :=
- F.rightDerivedObjIso (n + 1) (InjectiveResolution.self X) ≪≫
- (homology'Functor _ _ _).mapIso
- ((HomologicalComplex.singleMapHomologicalComplex F (ComplexShape.up ℕ) _).app X) ≪≫
- (CochainComplex.homology'FunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
-#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
+lemma Functor.isZero_rightDerived_obj_injective_succ
+ (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
+ IsZero ((F.rightDerived (n+1)).obj X) := by
+ refine IsZero.of_iso ?_ ((InjectiveResolution.self X).isoRightDerivedObj F (n + 1))
+ erw [← HomologicalComplex.exactAt_iff_isZero_homology]
+ exact ShortComplex.exact_of_isZero_X₂ _ (F.map_isZero (by apply isZero_zero))
/-- We can compute a right derived functor on a morphism using a descent of that morphism
to a cochain map between chosen injective resolutions.
-/
-theorem Functor.rightDerived_map_eq (F : C ⥤ D) [F.Additive] (n : ℕ) {X Y : C} (f : Y ⟶ X)
- {P : InjectiveResolution X} {Q : InjectiveResolution Y} (g : Q.cocomplex ⟶ P.cocomplex)
- (w : Q.ι ≫ g = (CochainComplex.single₀ C).map f ≫ P.ι) :
+theorem Functor.rightDerived_map_eq (F : C ⥤ D) [F.Additive] (n : ℕ) {X Y : C} (f : X ⟶ Y)
+ {P : InjectiveResolution X} {Q : InjectiveResolution Y} (g : P.cocomplex ⟶ Q.cocomplex)
+ (w : P.ι ≫ g = (CochainComplex.single₀ C).map f ≫ Q.ι) :
(F.rightDerived n).map f =
- (F.rightDerivedObjIso n Q).hom ≫
- (homology'Functor D _ n).map ((F.mapHomologicalComplex _).map g) ≫
- (F.rightDerivedObjIso n P).inv := by
- dsimp only [Functor.rightDerived, Functor.rightDerivedObjIso]
- dsimp
- simp only [Category.comp_id, Category.id_comp]
- rw [← homology'Functor_map, HomotopyCategory.homology'Functor_map_factors]
- simp only [← Functor.map_comp]
- congr 1
- apply HomotopyCategory.eq_of_homotopy
- apply Functor.mapHomotopy
- apply InjectiveResolution.descHomotopy f
- · simp
- · simp only [InjectiveResolution.homotopyEquiv_hom_ι_assoc]
- rw [← Category.assoc, w, Category.assoc]
- simp only [InjectiveResolution.homotopyEquiv_inv_ι]
+ (P.isoRightDerivedObj F n).hom ≫
+ (F.mapHomologicalComplex _ ⋙ HomologicalComplex.homologyFunctor _ _ n).map g ≫
+ (Q.isoRightDerivedObj F n).inv := by
+ rw [← cancel_mono (Q.isoRightDerivedObj F n).hom,
+ InjectiveResolution.isoRightDerivedObj_hom_naturality f P Q g _ F n,
+ assoc, assoc, Iso.inv_hom_id, comp_id]
+ rw [← HomologicalComplex.comp_f, w, HomologicalComplex.comp_f,
+ CochainComplex.single₀_map_f_zero]
#align category_theory.functor.right_derived_map_eq CategoryTheory.Functor.rightDerived_map_eq
+/-- The natural transformation
+`F.rightDerivedToHomotopyCategory ⟶ G.rightDerivedToHomotopyCategory` induced by
+a natural transformation `F ⟶ G` between additive functors. -/
+noncomputable def NatTrans.rightDerivedToHomotopyCategory
+ {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) :
+ F.rightDerivedToHomotopyCategory ⟶ G.rightDerivedToHomotopyCategory :=
+ whiskerLeft _ (NatTrans.mapHomotopyCategory α (ComplexShape.up ℕ))
+
+lemma InjectiveResolution.rightDerivedToHomotopyCategory_app_eq
+ {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) {X : C} (P : InjectiveResolution X) :
+ (NatTrans.rightDerivedToHomotopyCategory α).app X =
+ (P.isoRightDerivedToHomotopyCategoryObj F).hom ≫
+ (HomotopyCategory.quotient _ _).map
+ ((NatTrans.mapHomologicalComplex α _).app P.cocomplex) ≫
+ (P.isoRightDerivedToHomotopyCategoryObj G).inv := by
+ rw [← cancel_mono (P.isoRightDerivedToHomotopyCategoryObj G).hom, assoc, assoc,
+ Iso.inv_hom_id, comp_id]
+ dsimp [isoRightDerivedToHomotopyCategoryObj, Functor.mapHomotopyCategoryFactors,
+ NatTrans.rightDerivedToHomotopyCategory]
+ rw [assoc]
+ erw [id_comp, comp_id]
+ obtain ⟨β, hβ⟩ := (HomotopyCategory.quotient _ _).map_surjective (iso P).hom
+ rw [← hβ]
+ dsimp
+ simp only [← Functor.map_comp, NatTrans.mapHomologicalComplex_naturality]
+ rfl
+
+@[simp]
+lemma NatTrans.rightDerivedToHomotopyCategory_id (F : C ⥤ D) [F.Additive] :
+ NatTrans.rightDerivedToHomotopyCategory (𝟙 F) = 𝟙 _ := rfl
+
+@[simp, reassoc]
+lemma NatTrans.rightDerivedToHomotopyCategory_comp {F G H : C ⥤ D} (α : F ⟶ G) (β : G ⟶ H)
+ [F.Additive] [G.Additive] [H.Additive] :
+ NatTrans.rightDerivedToHomotopyCategory (α ≫ β) =
+ NatTrans.rightDerivedToHomotopyCategory α ≫
+ NatTrans.rightDerivedToHomotopyCategory β := rfl
+
/-- The natural transformation between right-derived functors induced by a natural transformation.-/
-@[simps!]
-def NatTrans.rightDerived {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) (n : ℕ) :
+noncomputable def NatTrans.rightDerived
+ {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) (n : ℕ) :
F.rightDerived n ⟶ G.rightDerived n :=
- whiskerLeft (injectiveResolutions C)
- (whiskerRight (NatTrans.mapHomotopyCategory α _) (HomotopyCategory.homology'Functor D _ n))
+ whiskerRight (NatTrans.rightDerivedToHomotopyCategory α) _
#align category_theory.nat_trans.right_derived CategoryTheory.NatTrans.rightDerived
@[simp]
theorem NatTrans.rightDerived_id (F : C ⥤ D) [F.Additive] (n : ℕ) :
NatTrans.rightDerived (𝟙 F) n = 𝟙 (F.rightDerived n) := by
- simp [NatTrans.rightDerived]
+ dsimp only [rightDerived]
+ simp only [rightDerivedToHomotopyCategory_id, whiskerRight_id']
rfl
#align category_theory.nat_trans.right_derived_id CategoryTheory.NatTrans.rightDerived_id
-@[simp, nolint simpNF]
+@[simp, reassoc]
theorem NatTrans.rightDerived_comp {F G H : C ⥤ D} [F.Additive] [G.Additive] [H.Additive]
(α : F ⟶ G) (β : G ⟶ H) (n : ℕ) :
NatTrans.rightDerived (α ≫ β) n = NatTrans.rightDerived α n ≫ NatTrans.rightDerived β n := by
simp [NatTrans.rightDerived]
#align category_theory.nat_trans.right_derived_comp CategoryTheory.NatTrans.rightDerived_comp
+namespace InjectiveResolution
+
/-- A component of the natural transformation between right-derived functors can be computed
-using a chosen injective resolution.
--/
-theorem NatTrans.rightDerived_eq {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) (n : ℕ) {X : C}
- (P : InjectiveResolution X) :
- (NatTrans.rightDerived α n).app X =
- (F.rightDerivedObjIso n P).hom ≫
- (homology'Functor D _ n).map ((NatTrans.mapHomologicalComplex α _).app P.cocomplex) ≫
- (G.rightDerivedObjIso n P).inv := by
- symm
- dsimp [NatTrans.rightDerived, Functor.rightDerivedObjIso]
- simp only [Category.comp_id, Category.id_comp]
- rw [← homology'Functor_map, HomotopyCategory.homology'Functor_map_factors]
- simp only [← Functor.map_comp]
- congr 1
- apply HomotopyCategory.eq_of_homotopy
- simp only [NatTrans.mapHomologicalComplex_naturality_assoc, ← Functor.map_comp]
- apply Homotopy.compLeftId
- rw [← Functor.map_id]
- apply Functor.mapHomotopy
- apply HomotopyEquiv.homotopyHomInvId
-#align category_theory.nat_trans.right_derived_eq CategoryTheory.NatTrans.rightDerived_eq
+using a chosen injective resolution. -/
+lemma rightDerived_app_eq
+ {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) {X : C} (P : InjectiveResolution X)
+ (n : ℕ) : (NatTrans.rightDerived α n).app X =
+ (P.isoRightDerivedObj F n).hom ≫
+ (HomologicalComplex.homologyFunctor D (ComplexShape.up ℕ) n).map
+ ((NatTrans.mapHomologicalComplex α _).app P.cocomplex) ≫
+ (P.isoRightDerivedObj G n).inv := by
+ dsimp [NatTrans.rightDerived, isoRightDerivedObj]
+ rw [InjectiveResolution.rightDerivedToHomotopyCategory_app_eq α P,
+ Functor.map_comp, Functor.map_comp, assoc]
+ erw [← (HomotopyCategory.homologyFunctorFactors D (ComplexShape.up ℕ) n).hom.naturality_assoc
+ ((NatTrans.mapHomologicalComplex α (ComplexShape.up ℕ)).app P.cocomplex)]
+ simp only [Functor.comp_map, Iso.hom_inv_id_app_assoc]
+
+/-- If `P : InjectiveResolution X` and `F` is an additive functor, this is
+the canonical morphism from `F.obj X` to the cycles in degree `0` of
+`(F.mapHomologicalComplex _).obj P.cocomplex`. -/
+noncomputable def toRightDerivedZero' {X : C}
+ (P : InjectiveResolution X) (F : C ⥤ D) [F.Additive] :
+ F.obj X ⟶ ((F.mapHomologicalComplex _).obj P.cocomplex).cycles 0 :=
+ HomologicalComplex.liftCycles _ (F.map (P.ι.f 0)) 1 (by simp) (by
+ dsimp
+ rw [← F.map_comp, HomologicalComplex.Hom.comm, HomologicalComplex.single_obj_d,
+ zero_comp, F.map_zero])
+
+@[reassoc (attr := simp)]
+lemma toRightDerivedZero'_comp_iCycles {X : C}
+ (P : InjectiveResolution X) (F : C ⥤ D) [F.Additive] :
+ P.toRightDerivedZero' F ≫
+ HomologicalComplex.iCycles _ _ = F.map (P.ι.f 0) := by
+ simp [toRightDerivedZero']
+
+@[reassoc]
+lemma toRightDerivedZero'_naturality {X Y : C} (f : X ⟶ Y)
+ (P : InjectiveResolution X) (Q : InjectiveResolution Y)
+ (φ : P.cocomplex ⟶ Q.cocomplex) (comm : P.ι.f 0 ≫ φ.f 0 = f ≫ Q.ι.f 0)
+ (F : C ⥤ D) [F.Additive] :
+ F.map f ≫ Q.toRightDerivedZero' F =
+ P.toRightDerivedZero' F ≫
+ HomologicalComplex.cyclesMap ((F.mapHomologicalComplex _).map φ) 0 := by
+ simp only [← cancel_mono (HomologicalComplex.iCycles _ _),
+ Functor.mapHomologicalComplex_obj_X, assoc, toRightDerivedZero'_comp_iCycles,
+ CochainComplex.single₀_obj_zero, HomologicalComplex.cyclesMap_i,
+ Functor.mapHomologicalComplex_map_f, toRightDerivedZero'_comp_iCycles_assoc,
+ ← F.map_comp, comm]
+
+instance (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
+ IsIso ((InjectiveResolution.self X).toRightDerivedZero' F) := by
+ dsimp [InjectiveResolution.toRightDerivedZero']
+ rw [CochainComplex.isIso_liftCycles_iff]
+ refine' ⟨ShortComplex.Splitting.exact _, inferInstance⟩
+ exact
+ { r := 𝟙 _
+ s := 0
+ s_g := (F.map_isZero (isZero_zero _)).eq_of_src _ _ }
+
+end InjectiveResolution
+
+/-- The natural transformation `F ⟶ F.rightDerived 0`. -/
+noncomputable def Functor.toRightDerivedZero (F : C ⥤ D) [F.Additive] :
+ F ⟶ F.rightDerived 0 where
+ app X := (injectiveResolution X).toRightDerivedZero' F ≫
+ (CochainComplex.isoHomologyπ₀ _).hom ≫
+ (HomotopyCategory.homologyFunctorFactors D (ComplexShape.up ℕ) 0).inv.app _
+ naturality {X Y} f := by
+ dsimp [rightDerived]
+ rw [assoc, assoc, InjectiveResolution.toRightDerivedZero'_naturality_assoc f
+ (injectiveResolution X) (injectiveResolution Y)
+ (InjectiveResolution.desc f _ _) (by simp),
+ ← HomologicalComplex.homologyπ_naturality_assoc]
+ erw [← NatTrans.naturality]
+ rfl
+
+lemma InjectiveResolution.toRightDerivedZero_eq
+ {X : C} (I : InjectiveResolution X) (F : C ⥤ D) [F.Additive] :
+ F.toRightDerivedZero.app X = I.toRightDerivedZero' F ≫
+ (CochainComplex.isoHomologyπ₀ _).hom ≫ (I.isoRightDerivedObj F 0).inv := by
+ dsimp [Functor.toRightDerivedZero, isoRightDerivedObj]
+ have h₁ := InjectiveResolution.toRightDerivedZero'_naturality
+ (𝟙 X) (injectiveResolution X) I (desc (𝟙 X) _ _) (by simp) F
+ simp only [Functor.map_id, id_comp] at h₁
+ have h₂ : (I.isoRightDerivedToHomotopyCategoryObj F).hom =
+ (F.mapHomologicalComplex _ ⋙ HomotopyCategory.quotient _ _).map (desc (𝟙 X) _ _) :=
+ comp_id _
+ rw [← cancel_mono ((HomotopyCategory.homologyFunctor _ _ 0).map
+ (I.isoRightDerivedToHomotopyCategoryObj F).hom),
+ assoc, assoc, assoc, assoc, assoc, ← Functor.map_comp,
+ Iso.inv_hom_id, Functor.map_id, comp_id,
+ reassoc_of% h₁, h₂, ← HomologicalComplex.homologyπ_naturality_assoc]
+ erw [← NatTrans.naturality]
+ rfl
-end CategoryTheory
+instance (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
+ IsIso (F.toRightDerivedZero.app X) := by
+ rw [(InjectiveResolution.self X).toRightDerivedZero_eq F]
+ infer_instance
section
-universe w v u
-
-open CategoryTheory.Limits CategoryTheory CategoryTheory.Functor
-
-variable {C : Type u} [Category.{w} C] {D : Type u} [Category.{w} D]
-
-variable (F : C ⥤ D) {X Y Z : C} {f : X ⟶ Y} {g : Y ⟶ Z}
-
-namespace CategoryTheory.Abelian.Functor
-
-open CategoryTheory.Preadditive
-
-variable [Abelian C] [Abelian D] [Additive F]
-
-/-- If `PreservesFiniteLimits F` and `Mono f`, then `Exact (F.map f) (F.map g)` if
-`Exact f g`. -/
-theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits F] [Mono f]
- (ex : Exact f g) : Exact (F.map f) (F.map g) :=
- Abelian.exact_of_is_kernel _ _ (by simp [← Functor.map_comp, ex.w]) <|
- Limits.isLimitForkMapOfIsLimit' _ ex.w (Abelian.isLimitOfExactOfMono _ _ ex)
-#align category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono CategoryTheory.Abelian.Functor.preserves_exact_of_preservesFiniteLimits_of_mono
-
-theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesFiniteLimits F] :
- Exact (F.map (P.ι.f 0))
- (((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0) :=
- Preadditive.exact_of_iso_of_exact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
- (Iso.refl _)
- (HomologicalComplex.xNextIso ((F.mapHomologicalComplex _).obj P.cocomplex) rfl).symm (by simp)
- (by rw [Iso.refl_hom, Category.id_comp, Iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr)
- (preserves_exact_of_preservesFiniteLimits_of_mono _ P.exact₀)
-#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution
-
-/-- Given `P : InjectiveResolution X`, a morphism `(F.rightDerived 0).obj X ⟶ F.obj X` given
-`PreservesFiniteLimits F`. -/
-def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
- (P : InjectiveResolution X) : (F.rightDerived 0).obj X ⟶ F.obj X :=
- (rightDerivedObjIso F 0 P).hom ≫
- (homology'IsoKernelDesc _ _ _).hom ≫
- kernel.map _ (((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0)
- (cokernel.desc _ (𝟙 _) (by simp)) (𝟙 _)
- (by
- -- Porting note: was ext; simp
- ext
- dsimp
- simp) ≫
- -- Porting note: isIso_kernel_lift_of_exact_of_mono is no longer allowed as an
- -- instance for reasons I am not privy to
- have : IsIso <| kernel.lift _ _ (exact_of_map_injectiveResolution F P).w :=
- isIso_kernel_lift_of_exact_of_mono _ _ (exact_of_map_injectiveResolution F P)
- (asIso (kernel.lift _ _ (exact_of_map_injectiveResolution F P).w)).inv
-#align category_theory.abelian.functor.right_derived_zero_to_self_app CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp
-
-/-- Given `P : InjectiveResolution X`, a morphism `F.obj X ⟶ (F.rightDerived 0).obj X`. -/
-def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveResolution X) :
- F.obj X ⟶ (F.rightDerived 0).obj X :=
- homology'.lift _ _ _ (F.map (P.ι.f 0) ≫ cokernel.π _)
- (by
- have : (ComplexShape.up ℕ).Rel 0 1 := rfl
- rw [Category.assoc, cokernel.π_desc, HomologicalComplex.dFrom_eq _ this,
- mapHomologicalComplex_obj_d, ← Category.assoc, ← Functor.map_comp]
- simp only [InjectiveResolution.ι_f_zero_comp_complex_d, Functor.map_zero, zero_comp]) ≫
- (rightDerivedObjIso F 0 P).inv
-#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv
-
-theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
- (P : InjectiveResolution X) :
- rightDerivedZeroToSelfApp F P ≫ rightDerivedZeroToSelfAppInv F P = 𝟙 _ := by
- dsimp [rightDerivedZeroToSelfApp, rightDerivedZeroToSelfAppInv]
- rw [← Category.assoc, Iso.comp_inv_eq, Category.id_comp, Category.assoc, Category.assoc, ←
- Iso.eq_inv_comp, Iso.inv_hom_id]
- -- Porting note: broken ext
- apply homology'.hom_to_ext
- apply homology'.hom_from_ext
- rw [Category.assoc, Category.assoc, homology'.lift_ι, Category.id_comp]
- erw [homology'.π'_ι] -- Porting note: had to insist
- rw [Category.assoc, ← Category.assoc _ _ (cokernel.π _),
- Abelian.kernel.lift.inv, ← Category.assoc,
- ← Category.assoc _ (kernel.ι _), Limits.kernel.lift_ι, Category.assoc, Category.assoc, ←
- Category.assoc (homology'IsoKernelDesc _ _ _).hom _ _, ← homology'.ι, ← Category.assoc]
- erw [homology'.π'_ι] -- Porting note: had to insist
- rw [Category.assoc, ← Category.assoc (cokernel.π _)]
- erw [cokernel.π_desc] -- Porting note: had to insist
- rw [whisker_eq]
- dsimp; simp -- Porting note: was convert
- apply exact_of_map_injectiveResolution -- Porting note: Abelian.kernel.lift.inv
- -- created an Exact goal which was no longer automatically discharged
-#align category_theory.abelian.functor.right_derived_zero_to_self_app_comp_inv CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfApp_comp_inv
-
-theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
- (P : InjectiveResolution X) :
- rightDerivedZeroToSelfAppInv F P ≫ rightDerivedZeroToSelfApp F P = 𝟙 _ := by
- dsimp [rightDerivedZeroToSelfApp, rightDerivedZeroToSelfAppInv]
- rw [← Category.assoc _ (F.rightDerivedObjIso 0 P).hom,
- Category.assoc _ _ (F.rightDerivedObjIso 0 P).hom, Iso.inv_hom_id, Category.comp_id, ←
- Category.assoc, ← Category.assoc]
- -- Porting note: this IsIso instance used to be filled automatically
- apply (@IsIso.comp_inv_eq D _ _ _ _ _ ?_ _ _).mpr
- · rw [Category.id_comp]
- ext
- simp only [Limits.kernel.lift_ι_assoc,
- Category.assoc, Limits.kernel.lift_ι, homology'.lift]
- rw [← Category.assoc, ← Category.assoc,
- Category.assoc _ _ (homology'IsoKernelDesc _ _ _).hom]
- simp
- -- Porting note: this used to be an instance in ML3
- · apply isIso_kernel_lift_of_exact_of_mono _ _ (exact_of_map_injectiveResolution F P)
-#align category_theory.abelian.functor.right_derived_zero_to_self_app_inv_comp CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppInv_comp
-
-/-- Given `P : InjectiveResolution X`, the isomorphism `(F.rightDerived 0).obj X ≅ F.obj X` if
-`PreservesFiniteLimits F`. -/
-def rightDerivedZeroToSelfAppIso [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
- (P : InjectiveResolution X) : (F.rightDerived 0).obj X ≅ F.obj X where
- hom := rightDerivedZeroToSelfApp _ P
- inv := rightDerivedZeroToSelfAppInv _ P
- hom_inv_id := rightDerivedZeroToSelfApp_comp_inv _ P
- inv_hom_id := rightDerivedZeroToSelfAppInv_comp _ P
-#align category_theory.abelian.functor.right_derived_zero_to_self_app_iso CategoryTheory.Abelian.Functor.rightDerivedZeroToSelfAppIso
-
-/-- Given `P : InjectiveResolution X` and `Q : InjectiveResolution Y` and a morphism `f : X ⟶ Y`,
-naturality of the square given by `rightDerivedZeroToSelf_natural`. -/
-theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f : X ⟶ Y)
- (P : InjectiveResolution X) (Q : InjectiveResolution Y) :
- F.map f ≫ rightDerivedZeroToSelfAppInv F Q =
- rightDerivedZeroToSelfAppInv F P ≫ (F.rightDerived 0).map f := by
- dsimp [rightDerivedZeroToSelfAppInv]
- simp only [CategoryTheory.Functor.map_id, Category.id_comp, ← Category.assoc]
- rw [Iso.comp_inv_eq, rightDerived_map_eq F 0 f (InjectiveResolution.desc f Q P) (by simp),
- Category.assoc, Category.assoc, Category.assoc, Category.assoc, Iso.inv_hom_id,
- Category.comp_id, ← Category.assoc (F.rightDerivedObjIso 0 P).inv, Iso.inv_hom_id,
- Category.id_comp]
- dsimp only [homology'Functor_map]
- -- Porting note: broken ext
- apply homology'.hom_to_ext
- rw [Category.assoc, homology'.lift_ι, Category.assoc]
- erw [homology'.map_ι] -- Porting note: need to insist
- rw [←Category.assoc (homology'.lift _ _ _ _ _) _ _]
- erw [homology'.lift_ι] -- Porting note: need to insist
- rw [Category.assoc]
- erw [cokernel.π_desc] -- Porting note: need to insist
- rw [← Category.assoc, ← Functor.map_comp, ← Category.assoc,
- HomologicalComplex.Hom.sqFrom_left, mapHomologicalComplex_map_f, ← Functor.map_comp,
- InjectiveResolution.desc_commutes_zero f Q P]
- rfl -- Porting note: extra rfl
-#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural
-
-/-- Given `PreservesFiniteLimits F`, the natural isomorphism `(F.rightDerived 0) ≅ F`. -/
-def rightDerivedZeroIsoSelf [EnoughInjectives C] [PreservesFiniteLimits F] : F.rightDerived 0 ≅ F :=
- Iso.symm <|
- NatIso.ofComponents
- (fun X => (rightDerivedZeroToSelfAppIso _ (InjectiveResolution.of X)).symm) fun _ =>
- rightDerivedZeroToSelf_natural _ _ _ _
-#align category_theory.abelian.functor.right_derived_zero_iso_self CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf
-
-end CategoryTheory.Abelian.Functor
+variable (F : C ⥤ D) [F.Additive] [PreservesFiniteLimits F]
+
+instance {X : C} (P : InjectiveResolution X) :
+ IsIso (P.toRightDerivedZero' F) := by
+ dsimp [InjectiveResolution.toRightDerivedZero']
+ rw [CochainComplex.isIso_liftCycles_iff, ShortComplex.exact_and_mono_f_iff_f_is_kernel]
+ exact ⟨KernelFork.mapIsLimit _ (P.isLimitKernelFork) F⟩
+
+instance (X : C) : IsIso (F.toRightDerivedZero.app X) := by
+ dsimp [Functor.toRightDerivedZero]
+ infer_instance
+
+instance [PreservesFiniteLimits F] : IsIso F.toRightDerivedZero :=
+ NatIso.isIso_of_isIso_app _
+
+namespace Functor
+
+/-- The canonical isomorphism `F.rightDerived 0 ≅ F` when `F` is left exact
+(i.e. preserves finite limits). -/
+@[simps! inv]
+noncomputable def rightDerivedZeroIsoSelf : F.rightDerived 0 ≅ F :=
+ (asIso F.toRightDerivedZero).symm
+
+@[reassoc (attr := simp)]
+lemma rightDerivedZeroIsoSelf_hom_inv_id :
+ F.rightDerivedZeroIsoSelf.hom ≫ F.toRightDerivedZero = 𝟙 _ :=
+ F.rightDerivedZeroIsoSelf.hom_inv_id
+
+@[reassoc (attr := simp)]
+lemma rightDerivedZeroIsoSelf_inv_hom_id :
+ F.toRightDerivedZero ≫ F.rightDerivedZeroIsoSelf.hom = 𝟙 _ :=
+ F.rightDerivedZeroIsoSelf.inv_hom_id
+
+@[reassoc (attr := simp)]
+lemma rightDerivedZeroIsoSelf_hom_inv_id_app (X : C) :
+ F.rightDerivedZeroIsoSelf.hom.app X ≫ F.toRightDerivedZero.app X = 𝟙 _ :=
+ F.rightDerivedZeroIsoSelf.hom_inv_id_app X
+
+@[reassoc (attr := simp)]
+lemma rightDerivedZeroIsoSelf_inv_hom_id_app (X : C) :
+ F.toRightDerivedZero.app X ≫ F.rightDerivedZeroIsoSelf.hom.app X = 𝟙 _ :=
+ F.rightDerivedZeroIsoSelf.inv_hom_id_app X
+
+end Functor
+
+end
+
+end CategoryTheory
This PR removes the special definitions of single₀
for chain and cochain complexes, so as to avoid duplication of code with HomologicalComplex.single
which is the functor constructing the complex that is supported by a single arbitrary degree. single₀
was supposed to have better definitional properties, but it turns out that in Lean4, it is no longer true (at least for the action of this functor on objects). The computation of the homology of these single complexes is generalized for HomologicalComplex.single
using the new homology API: this result is moved to a separate file Algebra.Homology.SingleHomology
.
@@ -84,7 +84,8 @@ def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
(F.rightDerived 0).obj X ≅ F.obj X :=
F.rightDerivedObjIso 0 (InjectiveResolution.self X) ≪≫
- (homology'Functor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
+ (homology'Functor _ _ _).mapIso
+ ((HomologicalComplex.singleMapHomologicalComplex F (ComplexShape.up ℕ) 0).app X) ≪≫
(CochainComplex.homologyFunctor0Single₀ D).app (F.obj X)
#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZero
@@ -95,7 +96,8 @@ open ZeroObject
def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
(F.rightDerived (n + 1)).obj X ≅ 0 :=
F.rightDerivedObjIso (n + 1) (InjectiveResolution.self X) ≪≫
- (homology'Functor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
+ (homology'Functor _ _ _).mapIso
+ ((HomologicalComplex.singleMapHomologicalComplex F (ComplexShape.up ℕ) _).app X) ≪≫
(CochainComplex.homology'FunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
@@ -314,8 +316,7 @@ theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f :
erw [cokernel.π_desc] -- Porting note: need to insist
rw [← Category.assoc, ← Functor.map_comp, ← Category.assoc,
HomologicalComplex.Hom.sqFrom_left, mapHomologicalComplex_map_f, ← Functor.map_comp,
- show f ≫ Q.ι.f 0 = P.ι.f 0 ≫ (InjectiveResolution.desc f Q P).f 0 from
- HomologicalComplex.congr_hom (InjectiveResolution.desc_commutes f Q P).symm 0]
+ InjectiveResolution.desc_commutes_zero f Q P]
rfl -- Porting note: extra rfl
#align category_theory.abelian.functor.right_derived_zero_to_self_natural CategoryTheory.Abelian.Functor.rightDerivedZeroToSelf_natural
This PR renames definitions of the current homology API (adding a '
to homology
, cycles
, QuasiIso
) so as to create space for the development of the new homology API of homological complexes: this PR also contains the new definition of HomologicalComplex.homology
which involves the homology theory of short complexes.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -64,7 +64,7 @@ variable [Abelian C] [HasInjectiveResolutions C] [Abelian D]
/-- The right derived functors of an additive functor. -/
def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
- injectiveResolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homologyFunctor D _ n
+ injectiveResolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homology'Functor D _ n
#align category_theory.functor.right_derived CategoryTheory.Functor.rightDerived
/-- We can compute a right derived functor using a chosen injective resolution. -/
@@ -72,11 +72,11 @@ def Functor.rightDerived (F : C ⥤ D) [F.Additive] (n : ℕ) : C ⥤ D :=
def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
(P : InjectiveResolution X) :
(F.rightDerived n).obj X ≅
- (homologyFunctor D _ n).obj ((F.mapHomologicalComplex _).obj P.cocomplex) :=
- (HomotopyCategory.homologyFunctor D _ n).mapIso
+ (homology'Functor D _ n).obj ((F.mapHomologicalComplex _).obj P.cocomplex) :=
+ (HomotopyCategory.homology'Functor D _ n).mapIso
(HomotopyCategory.isoOfHomotopyEquiv
(F.mapHomotopyEquiv (InjectiveResolution.homotopyEquiv _ P))) ≪≫
- (HomotopyCategory.homologyFactors D _ n).app _
+ (HomotopyCategory.homology'Factors D _ n).app _
#align category_theory.functor.right_derived_obj_iso CategoryTheory.Functor.rightDerivedObjIso
/-- The 0-th derived functor of `F` on an injective object `X` is just `F.obj X`. -/
@@ -84,7 +84,7 @@ def Functor.rightDerivedObjIso (F : C ⥤ D) [F.Additive] (n : ℕ) {X : C}
def Functor.rightDerivedObjInjectiveZero (F : C ⥤ D) [F.Additive] (X : C) [Injective X] :
(F.rightDerived 0).obj X ≅ F.obj X :=
F.rightDerivedObjIso 0 (InjectiveResolution.self X) ≪≫
- (homologyFunctor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
+ (homology'Functor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
(CochainComplex.homologyFunctor0Single₀ D).app (F.obj X)
#align category_theory.functor.right_derived_obj_injective_zero CategoryTheory.Functor.rightDerivedObjInjectiveZero
@@ -95,8 +95,8 @@ open ZeroObject
def Functor.rightDerivedObjInjectiveSucc (F : C ⥤ D) [F.Additive] (n : ℕ) (X : C) [Injective X] :
(F.rightDerived (n + 1)).obj X ≅ 0 :=
F.rightDerivedObjIso (n + 1) (InjectiveResolution.self X) ≪≫
- (homologyFunctor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
- (CochainComplex.homologyFunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
+ (homology'Functor _ _ _).mapIso ((CochainComplex.single₀MapHomologicalComplex F).app X) ≪≫
+ (CochainComplex.homology'FunctorSuccSingle₀ D n).app (F.obj X) ≪≫ (Functor.zero_obj _).isoZero
#align category_theory.functor.right_derived_obj_injective_succ CategoryTheory.Functor.rightDerivedObjInjectiveSucc
/-- We can compute a right derived functor on a morphism using a descent of that morphism
@@ -107,12 +107,12 @@ theorem Functor.rightDerived_map_eq (F : C ⥤ D) [F.Additive] (n : ℕ) {X Y :
(w : Q.ι ≫ g = (CochainComplex.single₀ C).map f ≫ P.ι) :
(F.rightDerived n).map f =
(F.rightDerivedObjIso n Q).hom ≫
- (homologyFunctor D _ n).map ((F.mapHomologicalComplex _).map g) ≫
+ (homology'Functor D _ n).map ((F.mapHomologicalComplex _).map g) ≫
(F.rightDerivedObjIso n P).inv := by
dsimp only [Functor.rightDerived, Functor.rightDerivedObjIso]
dsimp
simp only [Category.comp_id, Category.id_comp]
- rw [← homologyFunctor_map, HomotopyCategory.homologyFunctor_map_factors]
+ rw [← homology'Functor_map, HomotopyCategory.homology'Functor_map_factors]
simp only [← Functor.map_comp]
congr 1
apply HomotopyCategory.eq_of_homotopy
@@ -129,7 +129,7 @@ theorem Functor.rightDerived_map_eq (F : C ⥤ D) [F.Additive] (n : ℕ) {X Y :
def NatTrans.rightDerived {F G : C ⥤ D} [F.Additive] [G.Additive] (α : F ⟶ G) (n : ℕ) :
F.rightDerived n ⟶ G.rightDerived n :=
whiskerLeft (injectiveResolutions C)
- (whiskerRight (NatTrans.mapHomotopyCategory α _) (HomotopyCategory.homologyFunctor D _ n))
+ (whiskerRight (NatTrans.mapHomotopyCategory α _) (HomotopyCategory.homology'Functor D _ n))
#align category_theory.nat_trans.right_derived CategoryTheory.NatTrans.rightDerived
@[simp]
@@ -153,12 +153,12 @@ theorem NatTrans.rightDerived_eq {F G : C ⥤ D} [F.Additive] [G.Additive] (α :
(P : InjectiveResolution X) :
(NatTrans.rightDerived α n).app X =
(F.rightDerivedObjIso n P).hom ≫
- (homologyFunctor D _ n).map ((NatTrans.mapHomologicalComplex α _).app P.cocomplex) ≫
+ (homology'Functor D _ n).map ((NatTrans.mapHomologicalComplex α _).app P.cocomplex) ≫
(G.rightDerivedObjIso n P).inv := by
symm
dsimp [NatTrans.rightDerived, Functor.rightDerivedObjIso]
simp only [Category.comp_id, Category.id_comp]
- rw [← homologyFunctor_map, HomotopyCategory.homologyFunctor_map_factors]
+ rw [← homology'Functor_map, HomotopyCategory.homology'Functor_map_factors]
simp only [← Functor.map_comp]
congr 1
apply HomotopyCategory.eq_of_homotopy
@@ -210,7 +210,7 @@ theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesF
def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X : C}
(P : InjectiveResolution X) : (F.rightDerived 0).obj X ⟶ F.obj X :=
(rightDerivedObjIso F 0 P).hom ≫
- (homologyIsoKernelDesc _ _ _).hom ≫
+ (homology'IsoKernelDesc _ _ _).hom ≫
kernel.map _ (((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).dFrom 0)
(cokernel.desc _ (𝟙 _) (by simp)) (𝟙 _)
(by
@@ -228,7 +228,7 @@ def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X
/-- Given `P : InjectiveResolution X`, a morphism `F.obj X ⟶ (F.rightDerived 0).obj X`. -/
def rightDerivedZeroToSelfAppInv [EnoughInjectives C] {X : C} (P : InjectiveResolution X) :
F.obj X ⟶ (F.rightDerived 0).obj X :=
- homology.lift _ _ _ (F.map (P.ι.f 0) ≫ cokernel.π _)
+ homology'.lift _ _ _ (F.map (P.ι.f 0) ≫ cokernel.π _)
(by
have : (ComplexShape.up ℕ).Rel 0 1 := rfl
rw [Category.assoc, cokernel.π_desc, HomologicalComplex.dFrom_eq _ this,
@@ -244,15 +244,15 @@ theorem rightDerivedZeroToSelfApp_comp_inv [EnoughInjectives C] [PreservesFinite
rw [← Category.assoc, Iso.comp_inv_eq, Category.id_comp, Category.assoc, Category.assoc, ←
Iso.eq_inv_comp, Iso.inv_hom_id]
-- Porting note: broken ext
- apply homology.hom_to_ext
- apply homology.hom_from_ext
- rw [Category.assoc, Category.assoc, homology.lift_ι, Category.id_comp]
- erw [homology.π'_ι] -- Porting note: had to insist
+ apply homology'.hom_to_ext
+ apply homology'.hom_from_ext
+ rw [Category.assoc, Category.assoc, homology'.lift_ι, Category.id_comp]
+ erw [homology'.π'_ι] -- Porting note: had to insist
rw [Category.assoc, ← Category.assoc _ _ (cokernel.π _),
Abelian.kernel.lift.inv, ← Category.assoc,
← Category.assoc _ (kernel.ι _), Limits.kernel.lift_ι, Category.assoc, Category.assoc, ←
- Category.assoc (homologyIsoKernelDesc _ _ _).hom _ _, ← homology.ι, ← Category.assoc]
- erw [homology.π'_ι] -- Porting note: had to insist
+ Category.assoc (homology'IsoKernelDesc _ _ _).hom _ _, ← homology'.ι, ← Category.assoc]
+ erw [homology'.π'_ι] -- Porting note: had to insist
rw [Category.assoc, ← Category.assoc (cokernel.π _)]
erw [cokernel.π_desc] -- Porting note: had to insist
rw [whisker_eq]
@@ -273,9 +273,9 @@ theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteL
· rw [Category.id_comp]
ext
simp only [Limits.kernel.lift_ι_assoc,
- Category.assoc, Limits.kernel.lift_ι, homology.lift]
+ Category.assoc, Limits.kernel.lift_ι, homology'.lift]
rw [← Category.assoc, ← Category.assoc,
- Category.assoc _ _ (homologyIsoKernelDesc _ _ _).hom]
+ Category.assoc _ _ (homology'IsoKernelDesc _ _ _).hom]
simp
-- Porting note: this used to be an instance in ML3
· apply isIso_kernel_lift_of_exact_of_mono _ _ (exact_of_map_injectiveResolution F P)
@@ -303,13 +303,13 @@ theorem rightDerivedZeroToSelf_natural [EnoughInjectives C] {X : C} {Y : C} (f :
Category.assoc, Category.assoc, Category.assoc, Category.assoc, Iso.inv_hom_id,
Category.comp_id, ← Category.assoc (F.rightDerivedObjIso 0 P).inv, Iso.inv_hom_id,
Category.id_comp]
- dsimp only [homologyFunctor_map]
+ dsimp only [homology'Functor_map]
-- Porting note: broken ext
- apply homology.hom_to_ext
- rw [Category.assoc, homology.lift_ι, Category.assoc]
- erw [homology.map_ι] -- Porting note: need to insist
- rw [←Category.assoc (homology.lift _ _ _ _ _) _ _]
- erw [homology.lift_ι] -- Porting note: need to insist
+ apply homology'.hom_to_ext
+ rw [Category.assoc, homology'.lift_ι, Category.assoc]
+ erw [homology'.map_ι] -- Porting note: need to insist
+ rw [←Category.assoc (homology'.lift _ _ _ _ _) _ _]
+ erw [homology'.lift_ι] -- Porting note: need to insist
rw [Category.assoc]
erw [cokernel.π_desc] -- Porting note: need to insist
rw [← Category.assoc, ← Functor.map_comp, ← Category.assoc,
@@ -201,7 +201,7 @@ theorem exact_of_map_injectiveResolution (P : InjectiveResolution X) [PreservesF
Preadditive.exact_of_iso_of_exact' (F.map (P.ι.f 0)) (F.map (P.cocomplex.d 0 1)) _ _ (Iso.refl _)
(Iso.refl _)
(HomologicalComplex.xNextIso ((F.mapHomologicalComplex _).obj P.cocomplex) rfl).symm (by simp)
- (by rw [Iso.refl_hom, Category.id_comp, Iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr )
+ (by rw [Iso.refl_hom, Category.id_comp, Iso.symm_hom, HomologicalComplex.dFrom_eq] <;> congr)
(preserves_exact_of_preservesFiniteLimits_of_mono _ P.exact₀)
#align category_theory.abelian.functor.exact_of_map_injective_resolution CategoryTheory.Abelian.Functor.exact_of_map_injectiveResolution
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -58,7 +58,7 @@ namespace CategoryTheory
universe v u
-variable {C : Type u} [Category.{v} C] {D : Type _} [Category D]
+variable {C : Type u} [Category.{v} C] {D : Type*} [Category D]
variable [Abelian C] [HasInjectiveResolutions C] [Abelian D]
@@ -2,11 +2,6 @@
Copyright (c) 2022 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang, Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.abelian.right_derived
-! leanprover-community/mathlib commit 024a4231815538ac739f52d08dd20a55da0d6b23
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Abelian.InjectiveResolution
import Mathlib.Algebra.Homology.Additive
@@ -14,6 +9,8 @@ import Mathlib.CategoryTheory.Limits.Constructions.EpiMono
import Mathlib.CategoryTheory.Abelian.Homology
import Mathlib.CategoryTheory.Abelian.Exact
+#align_import category_theory.abelian.right_derived from "leanprover-community/mathlib"@"024a4231815538ac739f52d08dd20a55da0d6b23"
+
/-!
# Right-derived functors
@@ -218,11 +218,11 @@ def rightDerivedZeroToSelfApp [EnoughInjectives C] [PreservesFiniteLimits F] {X
(cokernel.desc _ (𝟙 _) (by simp)) (𝟙 _)
(by
-- Porting note: was ext; simp
- apply coequalizer.hom_ext
+ ext
dsimp
simp) ≫
-- Porting note: isIso_kernel_lift_of_exact_of_mono is no longer allowed as an
- -- instance for reasons am I not privy to
+ -- instance for reasons I am not privy to
have : IsIso <| kernel.lift _ _ (exact_of_map_injectiveResolution F P).w :=
isIso_kernel_lift_of_exact_of_mono _ _ (exact_of_map_injectiveResolution F P)
(asIso (kernel.lift _ _ (exact_of_map_injectiveResolution F P).w)).inv
@@ -274,8 +274,7 @@ theorem rightDerivedZeroToSelfAppInv_comp [EnoughInjectives C] [PreservesFiniteL
-- Porting note: this IsIso instance used to be filled automatically
apply (@IsIso.comp_inv_eq D _ _ _ _ _ ?_ _ _).mpr
· rw [Category.id_comp]
- -- Porting note: broken ext
- apply equalizer.hom_ext
+ ext
simp only [Limits.kernel.lift_ι_assoc,
Category.assoc, Limits.kernel.lift_ι, homology.lift]
rw [← Category.assoc, ← Category.assoc,
@@ -22,7 +22,7 @@ out of a category with injective resolutions.
The definition is
```
-injective_resolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homologyFunctor D _ n
+injectiveResolutions C ⋙ F.mapHomotopyCategory _ ⋙ HomotopyCategory.homologyFunctor D _ n
```
that is, we pick an injective resolution (thought of as an object of the homotopy category),
we apply `F` objectwise, and compute `n`-th homology.
@@ -191,7 +191,7 @@ open CategoryTheory.Preadditive
variable [Abelian C] [Abelian D] [Additive F]
/-- If `PreservesFiniteLimits F` and `Mono f`, then `Exact (F.map f) (F.map g)` if
-`exact f g`. -/
+`Exact f g`. -/
theorem preserves_exact_of_preservesFiniteLimits_of_mono [PreservesFiniteLimits F] [Mono f]
(ex : Exact f g) : Exact (F.map f) (F.map g) :=
Abelian.exact_of_is_kernel _ _ (by simp [← Functor.map_comp, ex.w]) <|
@@ -332,4 +332,3 @@ def rightDerivedZeroIsoSelf [EnoughInjectives C] [PreservesFiniteLimits F] : F.r
#align category_theory.abelian.functor.right_derived_zero_iso_self CategoryTheory.Abelian.Functor.rightDerivedZeroIsoSelf
end CategoryTheory.Abelian.Functor
-
The unported dependencies are