algebra.homology.homologyMathlib.Algebra.Homology.Homology

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -185,7 +185,7 @@ def ChainComplex.homology'ZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
           Arrow.mk (C.dTo 0) ≅ Arrow.mk (C.d 1 0))
         (Arrow.isoMk (Iso.refl _) (Iso.refl _) <| by
             simp [C.d_from_eq_zero fun h : _ = _ =>
-                one_ne_zero <| by rwa [ChainComplex.next_nat_zero] at h ] :
+                one_ne_zero <| by rwa [ChainComplex.next_nat_zero] at h] :
           Arrow.mk (C.dFrom 0) ≅ Arrow.mk 0)
         rfl).trans <|
     homology'OfZeroRight _
Diff
@@ -46,31 +46,31 @@ section Cycles
 
 variable [HasKernels V]
 
-#print HomologicalComplex.cycles /-
+#print HomologicalComplex.cycles' /-
 /-- The cycles at index `i`, as a subobject. -/
-abbrev cycles (i : ι) : Subobject (C.pt i) :=
+abbrev cycles' (i : ι) : Subobject (C.pt i) :=
   kernelSubobject (C.dFrom i)
-#align homological_complex.cycles HomologicalComplex.cycles
+#align homological_complex.cycles HomologicalComplex.cycles'
 -/
 
-#print HomologicalComplex.cycles_eq_kernelSubobject /-
-theorem cycles_eq_kernelSubobject {i j : ι} (r : c.Rel i j) :
-    C.cycles i = kernelSubobject (C.d i j) :=
+#print HomologicalComplex.cycles'_eq_kernelSubobject /-
+theorem cycles'_eq_kernelSubobject {i j : ι} (r : c.Rel i j) :
+    C.cycles' i = kernelSubobject (C.d i j) :=
   C.kernel_from_eq_kernel r
-#align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles_eq_kernelSubobject
+#align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles'_eq_kernelSubobject
 -/
 
-#print HomologicalComplex.cyclesIsoKernel /-
+#print HomologicalComplex.cycles'IsoKernel /-
 /-- The underlying object of `C.cycles i` is isomorphic to `kernel (C.d i j)`,
 for any `j` such that `rel i j`.
 -/
-def cyclesIsoKernel {i j : ι} (r : c.Rel i j) : (C.cycles i : V) ≅ kernel (C.d i j) :=
-  Subobject.isoOfEq _ _ (C.cycles_eq_kernelSubobject r) ≪≫ kernelSubobjectIso (C.d i j)
-#align homological_complex.cycles_iso_kernel HomologicalComplex.cyclesIsoKernel
+def cycles'IsoKernel {i j : ι} (r : c.Rel i j) : (C.cycles' i : V) ≅ kernel (C.d i j) :=
+  Subobject.isoOfEq _ _ (C.cycles'_eq_kernelSubobject r) ≪≫ kernelSubobjectIso (C.d i j)
+#align homological_complex.cycles_iso_kernel HomologicalComplex.cycles'IsoKernel
 -/
 
 #print HomologicalComplex.cycles_eq_top /-
-theorem cycles_eq_top {i} (h : ¬c.Rel i (c.next i)) : C.cycles i = ⊤ :=
+theorem cycles_eq_top {i} (h : ¬c.Rel i (c.next i)) : C.cycles' i = ⊤ :=
   by
   rw [eq_top_iff]
   apply le_kernel_subobject
@@ -123,63 +123,63 @@ section
 
 variable [HasKernels V] [HasImages V]
 
-#print HomologicalComplex.boundaries_le_cycles /-
-theorem boundaries_le_cycles (C : HomologicalComplex V c) (i : ι) : C.boundaries i ≤ C.cycles i :=
+#print HomologicalComplex.boundaries_le_cycles' /-
+theorem boundaries_le_cycles' (C : HomologicalComplex V c) (i : ι) : C.boundaries i ≤ C.cycles' i :=
   image_le_kernel _ _ (C.dTo_comp_dFrom i)
-#align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cycles
+#align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cycles'
 -/
 
-#print HomologicalComplex.boundariesToCycles /-
+#print HomologicalComplex.boundariesToCycles' /-
 /-- The canonical map from `boundaries i` to `cycles i`.
 -/
-abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
-    (C.boundaries i : V) ⟶ (C.cycles i : V) :=
+abbrev boundariesToCycles' (C : HomologicalComplex V c) (i : ι) :
+    (C.boundaries i : V) ⟶ (C.cycles' i : V) :=
   imageToKernel _ _ (C.dTo_comp_dFrom i)
-#align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCycles
+#align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCycles'
 -/
 
-#print HomologicalComplex.imageToKernel_as_boundariesToCycles /-
+#print HomologicalComplex.imageToKernel_as_boundariesToCycles' /-
 /-- Prefer `boundaries_to_cycles`. -/
 @[simp]
-theorem imageToKernel_as_boundariesToCycles (C : HomologicalComplex V c) (i : ι) (h) :
-    (C.boundaries i).of_le (C.cycles i) h = C.boundariesToCycles i :=
+theorem imageToKernel_as_boundariesToCycles' (C : HomologicalComplex V c) (i : ι) (h) :
+    (C.boundaries i).of_le (C.cycles' i) h = C.boundariesToCycles' i :=
   rfl
-#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCycles
+#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCycles'
 -/
 
 variable [HasCokernels V]
 
-#print HomologicalComplex.homology /-
+#print HomologicalComplex.homology' /-
 /-- The homology of a complex at index `i`.
 -/
-abbrev homology (C : HomologicalComplex V c) (i : ι) : V :=
-  homology (C.dTo i) (C.dFrom i) (C.dTo_comp_dFrom i)
-#align homological_complex.homology HomologicalComplex.homology
+abbrev homology' (C : HomologicalComplex V c) (i : ι) : V :=
+  homology' (C.dTo i) (C.dFrom i) (C.dTo_comp_dFrom i)
+#align homological_complex.homology HomologicalComplex.homology'
 -/
 
-#print HomologicalComplex.homologyIso /-
+#print HomologicalComplex.homology'Iso /-
 /-- The `j`th homology of a homological complex (as kernel of 'the differential from `Cⱼ`' modulo
 the image of 'the differential to `Cⱼ`') is isomorphic to the kernel of `d : Cⱼ → Cₖ` modulo
 the image of `d : Cᵢ → Cⱼ` when `rel i j` and `rel j k`. -/
-def homologyIso (C : HomologicalComplex V c) {i j k : ι} (hij : c.Rel i j) (hjk : c.Rel j k) :
-    C.homology j ≅ homology (C.d i j) (C.d j k) (C.d_comp_d i j k) :=
-  homology.mapIso _ _
+def homology'Iso (C : HomologicalComplex V c) {i j k : ι} (hij : c.Rel i j) (hjk : c.Rel j k) :
+    C.homology' j ≅ homology' (C.d i j) (C.d j k) (C.d_comp_d i j k) :=
+  homology'.mapIso _ _
     (Arrow.isoMk (C.xPrevIso hij) (Iso.refl _) <| by dsimp <;> rw [C.d_to_eq hij, category.comp_id])
     (Arrow.isoMk (Iso.refl _) (C.xNextIso hjk) <| by
       dsimp <;> rw [C.d_from_comp_X_next_iso hjk, category.id_comp])
     rfl
-#align homological_complex.homology_iso HomologicalComplex.homologyIso
+#align homological_complex.homology_iso HomologicalComplex.homology'Iso
 -/
 
 end
 
 end HomologicalComplex
 
-#print ChainComplex.homologyZeroIso /-
+#print ChainComplex.homology'ZeroIso /-
 /-- The 0th homology of a chain complex is isomorphic to the cokernel of `d : C₁ ⟶ C₀`. -/
-def ChainComplex.homologyZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
-    (C : ChainComplex V ℕ) [Epi (factorThruImage (C.d 1 0))] : C.homology 0 ≅ cokernel (C.d 1 0) :=
-  (homology.mapIso _ _
+def ChainComplex.homology'ZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
+    (C : ChainComplex V ℕ) [Epi (factorThruImage (C.d 1 0))] : C.homology' 0 ≅ cokernel (C.d 1 0) :=
+  (homology'.mapIso _ _
         (Arrow.isoMk (C.xPrevIso rfl) (Iso.refl _) <| by
             rw [C.d_to_eq rfl] <;> exact (category.comp_id _).symm :
           Arrow.mk (C.dTo 0) ≅ Arrow.mk (C.d 1 0))
@@ -188,45 +188,45 @@ def ChainComplex.homologyZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
                 one_ne_zero <| by rwa [ChainComplex.next_nat_zero] at h ] :
           Arrow.mk (C.dFrom 0) ≅ Arrow.mk 0)
         rfl).trans <|
-    homologyOfZeroRight _
-#align chain_complex.homology_zero_iso ChainComplex.homologyZeroIso
+    homology'OfZeroRight _
+#align chain_complex.homology_zero_iso ChainComplex.homology'ZeroIso
 -/
 
-#print CochainComplex.homologyZeroIso /-
+#print CochainComplex.homology'ZeroIso /-
 /-- The 0th cohomology of a cochain complex is isomorphic to the kernel of `d : C₀ → C₁`. -/
-def CochainComplex.homologyZeroIso [HasZeroObject V] [HasKernels V] [HasImages V] [HasCokernels V]
-    (C : CochainComplex V ℕ) : C.homology 0 ≅ kernel (C.d 0 1) :=
-  (homology.mapIso _ _
+def CochainComplex.homology'ZeroIso [HasZeroObject V] [HasKernels V] [HasImages V] [HasCokernels V]
+    (C : CochainComplex V ℕ) : C.homology' 0 ≅ kernel (C.d 0 1) :=
+  (homology'.mapIso _ _
           (Arrow.isoMk (C.xPrevIsoSelf (by rw [CochainComplex.prev_nat_zero] <;> exact one_ne_zero))
               (Iso.refl _) (by simp) :
             Arrow.mk (C.dTo 0) ≅ Arrow.mk 0)
           (Arrow.isoMk (Iso.refl _) (C.xNextIso rfl) (by simp) :
             Arrow.mk (C.dFrom 0) ≅ Arrow.mk (C.d 0 1)) <|
         by simpa).trans <|
-    homologyOfZeroLeft _
-#align cochain_complex.homology_zero_iso CochainComplex.homologyZeroIso
+    homology'OfZeroLeft _
+#align cochain_complex.homology_zero_iso CochainComplex.homology'ZeroIso
 -/
 
-#print ChainComplex.homologySuccIso /-
+#print ChainComplex.homology'SuccIso /-
 /-- The `n + 1`th homology of a chain complex (as kernel of 'the differential from `Cₙ₊₁`' modulo
 the image of 'the differential to `Cₙ₊₁`') is isomorphic to the kernel of `d : Cₙ₊₁ → Cₙ` modulo
 the image of `d : Cₙ₊₂ → Cₙ₊₁`. -/
-def ChainComplex.homologySuccIso [HasKernels V] [HasImages V] [HasCokernels V]
+def ChainComplex.homology'SuccIso [HasKernels V] [HasImages V] [HasCokernels V]
     (C : ChainComplex V ℕ) (n : ℕ) :
-    C.homology (n + 1) ≅ homology (C.d (n + 2) (n + 1)) (C.d (n + 1) n) (C.d_comp_d _ _ _) :=
-  C.homologyIso rfl rfl
-#align chain_complex.homology_succ_iso ChainComplex.homologySuccIso
+    C.homology' (n + 1) ≅ homology' (C.d (n + 2) (n + 1)) (C.d (n + 1) n) (C.d_comp_d _ _ _) :=
+  C.homology'Iso rfl rfl
+#align chain_complex.homology_succ_iso ChainComplex.homology'SuccIso
 -/
 
-#print CochainComplex.homologySuccIso /-
+#print CochainComplex.homology'SuccIso /-
 /-- The `n + 1`th cohomology of a cochain complex (as kernel of 'the differential from `Cₙ₊₁`'
 modulo the image of 'the differential to `Cₙ₊₁`') is isomorphic to the kernel of `d : Cₙ₊₁ → Cₙ₊₂`
 modulo the image of `d : Cₙ → Cₙ₊₁`. -/
-def CochainComplex.homologySuccIso [HasKernels V] [HasImages V] [HasCokernels V]
+def CochainComplex.homology'SuccIso [HasKernels V] [HasImages V] [HasCokernels V]
     (C : CochainComplex V ℕ) (n : ℕ) :
-    C.homology (n + 1) ≅ homology (C.d n (n + 1)) (C.d (n + 1) (n + 2)) (C.d_comp_d _ _ _) :=
-  C.homologyIso rfl rfl
-#align cochain_complex.homology_succ_iso CochainComplex.homologySuccIso
+    C.homology' (n + 1) ≅ homology' (C.d n (n + 1)) (C.d (n + 1) (n + 2)) (C.d_comp_d _ _ _) :=
+  C.homology'Iso rfl rfl
+#align cochain_complex.homology_succ_iso CochainComplex.homology'SuccIso
 -/
 
 open HomologicalComplex
@@ -240,45 +240,45 @@ variable [HasKernels V]
 
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
-#print cyclesMap /-
+#print cycles'Map /-
 /-- The morphism between cycles induced by a chain map.
 -/
-abbrev cyclesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles i : V) ⟶ (C₂.cycles i : V) :=
-  Subobject.factorThru _ ((C₁.cycles i).arrow ≫ f.f i) (kernelSubobject_factors _ _ (by simp))
-#align cycles_map cyclesMap
+abbrev cycles'Map (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles' i : V) ⟶ (C₂.cycles' i : V) :=
+  Subobject.factorThru _ ((C₁.cycles' i).arrow ≫ f.f i) (kernelSubobject_factors _ _ (by simp))
+#align cycles_map cycles'Map
 -/
 
-#print cyclesMap_arrow /-
+#print cycles'Map_arrow /-
 @[simp, reassoc, elementwise]
-theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
-    cyclesMap f i ≫ (C₂.cycles i).arrow = (C₁.cycles i).arrow ≫ f.f i := by simp
-#align cycles_map_arrow cyclesMap_arrow
+theorem cycles'Map_arrow (f : C₁ ⟶ C₂) (i : ι) :
+    cycles'Map f i ≫ (C₂.cycles' i).arrow = (C₁.cycles' i).arrow ≫ f.f i := by simp
+#align cycles_map_arrow cycles'Map_arrow
 -/
 
-#print cyclesMap_id /-
+#print cycles'Map_id /-
 @[simp]
-theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ := by dsimp only [cyclesMap]; simp
-#align cycles_map_id cyclesMap_id
+theorem cycles'Map_id (i : ι) : cycles'Map (𝟙 C₁) i = 𝟙 _ := by dsimp only [cycles'Map]; simp
+#align cycles_map_id cycles'Map_id
 -/
 
-#print cyclesMap_comp /-
+#print cycles'Map_comp /-
 @[simp]
-theorem cyclesMap_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
-    cyclesMap (f ≫ g) i = cyclesMap f i ≫ cyclesMap g i := by dsimp only [cyclesMap];
+theorem cycles'Map_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
+    cycles'Map (f ≫ g) i = cycles'Map f i ≫ cycles'Map g i := by dsimp only [cycles'Map];
   simp [subobject.factor_thru_right]
-#align cycles_map_comp cyclesMap_comp
+#align cycles_map_comp cycles'Map_comp
 -/
 
 variable (V c)
 
-#print cyclesFunctor /-
+#print cycles'Functor /-
 /-- Cycles as a functor. -/
 @[simps]
-def cyclesFunctor (i : ι) : HomologicalComplex V c ⥤ V
+def cycles'Functor (i : ι) : HomologicalComplex V c ⥤ V
     where
-  obj C := C.cycles i
-  map C₁ C₂ f := cyclesMap f i
-#align cycles_functor cyclesFunctor
+  obj C := C.cycles' i
+  map C₁ C₂ f := cycles'Map f i
+#align cycles_functor cycles'Functor
 -/
 
 end
@@ -323,63 +323,63 @@ variable [HasEqualizers V] [HasImages V] [HasImageMaps V]
 
 variable {C₁ C₂ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
-#print boundariesToCycles_naturality /-
+#print boundariesToCycles'_naturality /-
 @[simp, reassoc]
-theorem boundariesToCycles_naturality (i : ι) :
-    boundariesMap f i ≫ C₂.boundariesToCycles i = C₁.boundariesToCycles i ≫ cyclesMap f i := by ext;
-  simp
-#align boundaries_to_cycles_naturality boundariesToCycles_naturality
+theorem boundariesToCycles'_naturality (i : ι) :
+    boundariesMap f i ≫ C₂.boundariesToCycles' i = C₁.boundariesToCycles' i ≫ cycles'Map f i := by
+  ext; simp
+#align boundaries_to_cycles_naturality boundariesToCycles'_naturality
 -/
 
 variable (V c)
 
-#print boundariesToCyclesNatTrans /-
+#print boundariesToCycles'NatTrans /-
 /-- The natural transformation from the boundaries functor to the cycles functor. -/
 @[simps]
-def boundariesToCyclesNatTrans (i : ι) : boundariesFunctor V c i ⟶ cyclesFunctor V c i
+def boundariesToCycles'NatTrans (i : ι) : boundariesFunctor V c i ⟶ cycles'Functor V c i
     where
-  app C := C.boundariesToCycles i
-  naturality' C₁ C₂ f := boundariesToCycles_naturality f i
-#align boundaries_to_cycles_nat_trans boundariesToCyclesNatTrans
+  app C := C.boundariesToCycles' i
+  naturality' C₁ C₂ f := boundariesToCycles'_naturality f i
+#align boundaries_to_cycles_nat_trans boundariesToCycles'NatTrans
 -/
 
-#print homologyFunctor /-
+#print homology'Functor /-
 /-- The `i`-th homology, as a functor to `V`. -/
 @[simps]
-def homologyFunctor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V
+def homology'Functor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V
     where
   -- It would be nice if we could just write
   -- `cokernel (boundaries_to_cycles_nat_trans V c i)`
   -- here, but universe implementation details get in the way...
-  obj C := C.homology i
-  map C₁ C₂ f := homology.map _ _ (f.sqTo i) (f.sqFrom i) rfl
+  obj C := C.homology' i
+  map C₁ C₂ f := homology'.map _ _ (f.sqTo i) (f.sqFrom i) rfl
   map_id' := by
     intros; ext1
-    simp only [homology.π_map, kernel_subobject_map_id, hom.sq_from_id, category.id_comp,
+    simp only [homology'.π_map, kernel_subobject_map_id, hom.sq_from_id, category.id_comp,
       category.comp_id]
   map_comp' := by
     intros; ext1
-    simp only [hom.sq_from_comp, kernel_subobject_map_comp, homology.π_map_assoc, homology.π_map,
+    simp only [hom.sq_from_comp, kernel_subobject_map_comp, homology'.π_map_assoc, homology'.π_map,
       category.assoc]
-#align homology_functor homologyFunctor
+#align homology_functor homology'Functor
 -/
 
-#print gradedHomologyFunctor /-
+#print gradedHomology'Functor /-
 /-- The homology functor from `ι`-indexed complexes to `ι`-graded objects in `V`. -/
 @[simps]
-def gradedHomologyFunctor [HasCokernels V] : HomologicalComplex V c ⥤ GradedObject ι V
+def gradedHomology'Functor [HasCokernels V] : HomologicalComplex V c ⥤ GradedObject ι V
     where
-  obj C i := C.homology i
-  map C C' f i := (homologyFunctor V c i).map f
+  obj C i := C.homology' i
+  map C C' f i := (homology'Functor V c i).map f
   map_id' := by
     intros; ext
-    simp only [pi.id_apply, homology.π_map, homologyFunctor_map, kernel_subobject_map_id,
+    simp only [pi.id_apply, homology'.π_map, homology'Functor_map, kernel_subobject_map_id,
       hom.sq_from_id, category.id_comp, category.comp_id]
   map_comp' := by
     intros; ext
-    simp only [hom.sq_from_comp, kernel_subobject_map_comp, homology.π_map_assoc, pi.comp_apply,
-      homology.π_map, homologyFunctor_map, category.assoc]
-#align graded_homology_functor gradedHomologyFunctor
+    simp only [hom.sq_from_comp, kernel_subobject_map_comp, homology'.π_map_assoc, pi.comp_apply,
+      homology'.π_map, homology'Functor_map, category.assoc]
+#align graded_homology_functor gradedHomology'Functor
 -/
 
 end
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2021 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathbin.Algebra.Homology.ImageToKernel
-import Mathbin.Algebra.Homology.HomologicalComplex
-import Mathbin.CategoryTheory.GradedObject
+import Algebra.Homology.ImageToKernel
+import Algebra.Homology.HomologicalComplex
+import CategoryTheory.GradedObject
 
 #align_import algebra.homology.homology from "leanprover-community/mathlib"@"8eb9c42d4d34c77f6ee84ea766ae4070233a973c"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.homology.homology
-! leanprover-community/mathlib commit 8eb9c42d4d34c77f6ee84ea766ae4070233a973c
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Homology.ImageToKernel
 import Mathbin.Algebra.Homology.HomologicalComplex
 import Mathbin.CategoryTheory.GradedObject
 
+#align_import algebra.homology.homology from "leanprover-community/mathlib"@"8eb9c42d4d34c77f6ee84ea766ae4070233a973c"
+
 /-!
 # The homology of a complex
 
Diff
@@ -56,24 +56,30 @@ abbrev cycles (i : ι) : Subobject (C.pt i) :=
 #align homological_complex.cycles HomologicalComplex.cycles
 -/
 
+#print HomologicalComplex.cycles_eq_kernelSubobject /-
 theorem cycles_eq_kernelSubobject {i j : ι} (r : c.Rel i j) :
     C.cycles i = kernelSubobject (C.d i j) :=
   C.kernel_from_eq_kernel r
 #align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles_eq_kernelSubobject
+-/
 
+#print HomologicalComplex.cyclesIsoKernel /-
 /-- The underlying object of `C.cycles i` is isomorphic to `kernel (C.d i j)`,
 for any `j` such that `rel i j`.
 -/
 def cyclesIsoKernel {i j : ι} (r : c.Rel i j) : (C.cycles i : V) ≅ kernel (C.d i j) :=
   Subobject.isoOfEq _ _ (C.cycles_eq_kernelSubobject r) ≪≫ kernelSubobjectIso (C.d i j)
 #align homological_complex.cycles_iso_kernel HomologicalComplex.cyclesIsoKernel
+-/
 
+#print HomologicalComplex.cycles_eq_top /-
 theorem cycles_eq_top {i} (h : ¬c.Rel i (c.next i)) : C.cycles i = ⊤ :=
   by
   rw [eq_top_iff]
   apply le_kernel_subobject
   rw [C.d_from_eq_zero h, comp_zero]
 #align homological_complex.cycles_eq_top HomologicalComplex.cycles_eq_top
+-/
 
 end Cycles
 
@@ -88,11 +94,14 @@ abbrev boundaries (C : HomologicalComplex V c) (j : ι) : Subobject (C.pt j) :=
 #align homological_complex.boundaries HomologicalComplex.boundaries
 -/
 
+#print HomologicalComplex.boundaries_eq_imageSubobject /-
 theorem boundaries_eq_imageSubobject [HasEqualizers V] {i j : ι} (r : c.Rel i j) :
     C.boundaries j = imageSubobject (C.d i j) :=
   C.image_to_eq_image r
 #align homological_complex.boundaries_eq_image_subobject HomologicalComplex.boundaries_eq_imageSubobject
+-/
 
+#print HomologicalComplex.boundariesIsoImage /-
 /-- The underlying object of `C.boundaries j` is isomorphic to `image (C.d i j)`,
 for any `i` such that `rel i j`.
 -/
@@ -100,13 +109,16 @@ def boundariesIsoImage [HasEqualizers V] {i j : ι} (r : c.Rel i j) :
     (C.boundaries j : V) ≅ image (C.d i j) :=
   Subobject.isoOfEq _ _ (C.boundaries_eq_imageSubobject r) ≪≫ imageSubobjectIso (C.d i j)
 #align homological_complex.boundaries_iso_image HomologicalComplex.boundariesIsoImage
+-/
 
+#print HomologicalComplex.boundaries_eq_bot /-
 theorem boundaries_eq_bot [HasZeroObject V] {j} (h : ¬c.Rel (c.prev j) j) : C.boundaries j = ⊥ :=
   by
   rw [eq_bot_iff]
   refine' image_subobject_le _ 0 _
   rw [C.d_to_eq_zero h, zero_comp]
 #align homological_complex.boundaries_eq_bot HomologicalComplex.boundaries_eq_bot
+-/
 
 end Boundaries
 
@@ -114,23 +126,29 @@ section
 
 variable [HasKernels V] [HasImages V]
 
+#print HomologicalComplex.boundaries_le_cycles /-
 theorem boundaries_le_cycles (C : HomologicalComplex V c) (i : ι) : C.boundaries i ≤ C.cycles i :=
   image_le_kernel _ _ (C.dTo_comp_dFrom i)
 #align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cycles
+-/
 
+#print HomologicalComplex.boundariesToCycles /-
 /-- The canonical map from `boundaries i` to `cycles i`.
 -/
 abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
     (C.boundaries i : V) ⟶ (C.cycles i : V) :=
   imageToKernel _ _ (C.dTo_comp_dFrom i)
 #align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCycles
+-/
 
+#print HomologicalComplex.imageToKernel_as_boundariesToCycles /-
 /-- Prefer `boundaries_to_cycles`. -/
 @[simp]
 theorem imageToKernel_as_boundariesToCycles (C : HomologicalComplex V c) (i : ι) (h) :
     (C.boundaries i).of_le (C.cycles i) h = C.boundariesToCycles i :=
   rfl
 #align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCycles
+-/
 
 variable [HasCokernels V]
 
@@ -225,26 +243,34 @@ variable [HasKernels V]
 
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
+#print cyclesMap /-
 /-- The morphism between cycles induced by a chain map.
 -/
 abbrev cyclesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles i : V) ⟶ (C₂.cycles i : V) :=
   Subobject.factorThru _ ((C₁.cycles i).arrow ≫ f.f i) (kernelSubobject_factors _ _ (by simp))
 #align cycles_map cyclesMap
+-/
 
+#print cyclesMap_arrow /-
 @[simp, reassoc, elementwise]
 theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
     cyclesMap f i ≫ (C₂.cycles i).arrow = (C₁.cycles i).arrow ≫ f.f i := by simp
 #align cycles_map_arrow cyclesMap_arrow
+-/
 
+#print cyclesMap_id /-
 @[simp]
 theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ := by dsimp only [cyclesMap]; simp
 #align cycles_map_id cyclesMap_id
+-/
 
+#print cyclesMap_comp /-
 @[simp]
 theorem cyclesMap_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
     cyclesMap (f ≫ g) i = cyclesMap f i ≫ cyclesMap g i := by dsimp only [cyclesMap];
   simp [subobject.factor_thru_right]
 #align cycles_map_comp cyclesMap_comp
+-/
 
 variable (V c)
 
@@ -269,11 +295,13 @@ variable [HasImages V] [HasImageMaps V]
 
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
+#print boundariesMap /-
 /-- The morphism between boundaries induced by a chain map.
 -/
 abbrev boundariesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.boundaries i : V) ⟶ (C₂.boundaries i : V) :=
   imageSubobjectMap (f.sqTo i)
 #align boundaries_map boundariesMap
+-/
 
 variable (V c)
 
@@ -298,11 +326,13 @@ variable [HasEqualizers V] [HasImages V] [HasImageMaps V]
 
 variable {C₁ C₂ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
+#print boundariesToCycles_naturality /-
 @[simp, reassoc]
 theorem boundariesToCycles_naturality (i : ι) :
     boundariesMap f i ≫ C₂.boundariesToCycles i = C₁.boundariesToCycles i ≫ cyclesMap f i := by ext;
   simp
 #align boundaries_to_cycles_naturality boundariesToCycles_naturality
+-/
 
 variable (V c)
 
Diff
@@ -170,7 +170,7 @@ def ChainComplex.homologyZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
           Arrow.mk (C.dTo 0) ≅ Arrow.mk (C.d 1 0))
         (Arrow.isoMk (Iso.refl _) (Iso.refl _) <| by
             simp [C.d_from_eq_zero fun h : _ = _ =>
-                one_ne_zero <| by rwa [ChainComplex.next_nat_zero] at h] :
+                one_ne_zero <| by rwa [ChainComplex.next_nat_zero] at h ] :
           Arrow.mk (C.dFrom 0) ≅ Arrow.mk 0)
         rfl).trans <|
     homologyOfZeroRight _
@@ -327,11 +327,11 @@ def homologyFunctor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V
   obj C := C.homology i
   map C₁ C₂ f := homology.map _ _ (f.sqTo i) (f.sqFrom i) rfl
   map_id' := by
-    intros ; ext1
+    intros; ext1
     simp only [homology.π_map, kernel_subobject_map_id, hom.sq_from_id, category.id_comp,
       category.comp_id]
   map_comp' := by
-    intros ; ext1
+    intros; ext1
     simp only [hom.sq_from_comp, kernel_subobject_map_comp, homology.π_map_assoc, homology.π_map,
       category.assoc]
 #align homology_functor homologyFunctor
@@ -345,11 +345,11 @@ def gradedHomologyFunctor [HasCokernels V] : HomologicalComplex V c ⥤ GradedOb
   obj C i := C.homology i
   map C C' f i := (homologyFunctor V c i).map f
   map_id' := by
-    intros ; ext
+    intros; ext
     simp only [pi.id_apply, homology.π_map, homologyFunctor_map, kernel_subobject_map_id,
       hom.sq_from_id, category.id_comp, category.comp_id]
   map_comp' := by
-    intros ; ext
+    intros; ext
     simp only [hom.sq_from_comp, kernel_subobject_map_comp, homology.π_map_assoc, pi.comp_apply,
       homology.π_map, homologyFunctor_map, category.assoc]
 #align graded_homology_functor gradedHomologyFunctor
Diff
@@ -39,7 +39,7 @@ variable {V : Type u} [Category.{v} V] [HasZeroMorphisms V]
 
 variable {c : ComplexShape ι} (C : HomologicalComplex V c)
 
-open Classical ZeroObject
+open scoped Classical ZeroObject
 
 noncomputable section
 
Diff
@@ -56,23 +56,11 @@ abbrev cycles (i : ι) : Subobject (C.pt i) :=
 #align homological_complex.cycles HomologicalComplex.cycles
 -/
 
-/- warning: homological_complex.cycles_eq_kernel_subobject -> HomologicalComplex.cycles_eq_kernelSubobject is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) _inst_2 (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 _inst_2 _inst_3 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j))))
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {i : ι} {j : ι}, (ComplexShape.Rel.{u1} ι c i j) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i) (CategoryTheory.Limits.kernelSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j) _inst_2 (HomologicalComplex.d.{u2, u3, u1} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u3} V _inst_1 _inst_2 _inst_3 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u2, u3, u1} ι V _inst_1 _inst_2 c C i j))))
-Case conversion may be inaccurate. Consider using '#align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles_eq_kernelSubobjectₓ'. -/
 theorem cycles_eq_kernelSubobject {i j : ι} (r : c.Rel i j) :
     C.cycles i = kernelSubobject (C.d i j) :=
   C.kernel_from_eq_kernel r
 #align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles_eq_kernelSubobject
 
-/- warning: homological_complex.cycles_iso_kernel -> HomologicalComplex.cyclesIsoKernel is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (CategoryTheory.Iso.{u1, u2} V _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)) (CategoryTheory.Limits.kernel.{u1, u2} V _inst_1 _inst_2 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (HomologicalComplex.cyclesIsoKernel._proof_1.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i j)))
-but is expected to have type
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (CategoryTheory.Iso.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)) (CategoryTheory.Limits.kernel.{u1, u2} V _inst_1 _inst_2 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 _inst_2 _inst_3 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j))))
-Case conversion may be inaccurate. Consider using '#align homological_complex.cycles_iso_kernel HomologicalComplex.cyclesIsoKernelₓ'. -/
 /-- The underlying object of `C.cycles i` is isomorphic to `kernel (C.d i j)`,
 for any `j` such that `rel i j`.
 -/
@@ -80,12 +68,6 @@ def cyclesIsoKernel {i j : ι} (r : c.Rel i j) : (C.cycles i : V) ≅ kernel (C.
   Subobject.isoOfEq _ _ (C.cycles_eq_kernelSubobject r) ≪≫ kernelSubobjectIso (C.d i j)
 #align homological_complex.cycles_iso_kernel HomologicalComplex.cyclesIsoKernel
 
-/- warning: homological_complex.cycles_eq_top -> HomologicalComplex.cycles_eq_top is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι}, (Not (ComplexShape.Rel.{u3} ι c i (ComplexShape.next.{u3} ι c i))) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) (Top.top.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (OrderTop.toHasTop.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toHasLe.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (CategoryTheory.Subobject.orderTop.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {i : ι}, (Not (ComplexShape.Rel.{u1} ι c i (ComplexShape.next.{u1} ι c i))) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i) (Top.top.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (OrderTop.toTop.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (CategoryTheory.Subobject.orderTop.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))
-Case conversion may be inaccurate. Consider using '#align homological_complex.cycles_eq_top HomologicalComplex.cycles_eq_topₓ'. -/
 theorem cycles_eq_top {i} (h : ¬c.Rel i (c.next i)) : C.cycles i = ⊤ :=
   by
   rw [eq_top_iff]
@@ -106,20 +88,11 @@ abbrev boundaries (C : HomologicalComplex V c) (j : ι) : Subobject (C.pt j) :=
 #align homological_complex.boundaries HomologicalComplex.boundaries
 -/
 
-/- warning: homological_complex.boundaries_eq_image_subobject -> HomologicalComplex.boundaries_eq_imageSubobject is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u2} V _inst_1] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasImages.hasImage.{u1, u2} V _inst_1 _inst_3 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j))))
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u2, u3} V _inst_1] {i : ι} {j : ι}, (ComplexShape.Rel.{u1} ι c i j) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C j) (CategoryTheory.Limits.imageSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u2, u3, u1} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasImages.has_image.{u2, u3} V _inst_1 _inst_3 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u2, u3, u1} ι V _inst_1 _inst_2 c C i j))))
-Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_eq_image_subobject HomologicalComplex.boundaries_eq_imageSubobjectₓ'. -/
 theorem boundaries_eq_imageSubobject [HasEqualizers V] {i j : ι} (r : c.Rel i j) :
     C.boundaries j = imageSubobject (C.d i j) :=
   C.image_to_eq_image r
 #align homological_complex.boundaries_eq_image_subobject HomologicalComplex.boundaries_eq_imageSubobject
 
-/- warning: homological_complex.boundaries_iso_image -> HomologicalComplex.boundariesIsoImage is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_iso_image HomologicalComplex.boundariesIsoImageₓ'. -/
 /-- The underlying object of `C.boundaries j` is isomorphic to `image (C.d i j)`,
 for any `i` such that `rel i j`.
 -/
@@ -128,12 +101,6 @@ def boundariesIsoImage [HasEqualizers V] {i j : ι} (r : c.Rel i j) :
   Subobject.isoOfEq _ _ (C.boundaries_eq_imageSubobject r) ≪≫ imageSubobjectIso (C.d i j)
 #align homological_complex.boundaries_iso_image HomologicalComplex.boundariesIsoImage
 
-/- warning: homological_complex.boundaries_eq_bot -> HomologicalComplex.boundaries_eq_bot is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroObject.{u1, u2} V _inst_1] {j : ι}, (Not (ComplexShape.Rel.{u3} ι c (ComplexShape.prev.{u3} ι c j) j)) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j) (Bot.bot.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (OrderBot.toHasBot.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (Preorder.toHasLe.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))) (CategoryTheory.Subobject.orderBot.{u1, u2} V _inst_1 (CategoryTheory.Limits.HasZeroObject.hasInitial.{u1, u2} V _inst_1 _inst_4) (CategoryTheory.Limits.HasZeroObject.initialMonoClass.{u1, u2} V _inst_1 _inst_4) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))))
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroObject.{u2, u3} V _inst_1] {j : ι}, (Not (ComplexShape.Rel.{u1} ι c (ComplexShape.prev.{u1} ι c j) j)) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C j) (Bot.bot.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (OrderBot.toBot.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)))) (CategoryTheory.Subobject.orderBot.{u2, u3} V _inst_1 (CategoryTheory.Limits.HasZeroObject.hasInitial.{u2, u3} V _inst_1 _inst_4) (CategoryTheory.Limits.HasZeroObject.initialMonoClass.{u2, u3} V _inst_1 _inst_4) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)))))
-Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_eq_bot HomologicalComplex.boundaries_eq_botₓ'. -/
 theorem boundaries_eq_bot [HasZeroObject V] {j} (h : ¬c.Rel (c.prev j) j) : C.boundaries j = ⊥ :=
   by
   rw [eq_bot_iff]
@@ -147,22 +114,10 @@ section
 
 variable [HasKernels V] [HasImages V]
 
-/- warning: homological_complex.boundaries_le_cycles -> HomologicalComplex.boundaries_le_cycles is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι), LE.le.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toHasLe.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (i : ι), LE.le.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i)
-Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cyclesₓ'. -/
 theorem boundaries_le_cycles (C : HomologicalComplex V c) (i : ι) : C.boundaries i ≤ C.cycles i :=
   image_le_kernel _ _ (C.dTo_comp_dFrom i)
 #align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cycles
 
-/- warning: homological_complex.boundaries_to_cycles -> HomologicalComplex.boundariesToCycles is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i))
-but is expected to have type
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i))
-Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCyclesₓ'. -/
 /-- The canonical map from `boundaries i` to `cycles i`.
 -/
 abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
@@ -170,9 +125,6 @@ abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
   imageToKernel _ _ (C.dTo_comp_dFrom i)
 #align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCycles
 
-/- warning: homological_complex.image_to_kernel_as_boundaries_to_cycles -> HomologicalComplex.imageToKernel_as_boundariesToCycles is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCyclesₓ'. -/
 /-- Prefer `boundaries_to_cycles`. -/
 @[simp]
 theorem imageToKernel_as_boundariesToCycles (C : HomologicalComplex V c) (i : ι) (h) :
@@ -273,36 +225,21 @@ variable [HasKernels V]
 
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
-/- warning: cycles_map -> cyclesMap is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c}, (Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) -> (forall (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i)))
-but is expected to have type
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c}, (Quiver.Hom.{max (succ u1) (succ u3), max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3, max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u1 u3, max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) -> (forall (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i)))
-Case conversion may be inaccurate. Consider using '#align cycles_map cyclesMapₓ'. -/
 /-- The morphism between cycles induced by a chain map.
 -/
 abbrev cyclesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles i : V) ⟶ (C₂.cycles i : V) :=
   Subobject.factorThru _ ((C₁.cycles i).arrow ≫ f.f i) (kernelSubobject_factors _ _ (by simp))
 #align cycles_map cyclesMap
 
-/- warning: cycles_map_arrow -> cyclesMap_arrow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align cycles_map_arrow cyclesMap_arrowₓ'. -/
 @[simp, reassoc, elementwise]
 theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
     cyclesMap f i ≫ (C₂.cycles i).arrow = (C₁.cycles i).arrow ≫ f.f i := by simp
 #align cycles_map_arrow cyclesMap_arrow
 
-/- warning: cycles_map_id -> cyclesMap_id is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align cycles_map_id cyclesMap_idₓ'. -/
 @[simp]
 theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ := by dsimp only [cyclesMap]; simp
 #align cycles_map_id cyclesMap_id
 
-/- warning: cycles_map_comp -> cyclesMap_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align cycles_map_comp cyclesMap_compₓ'. -/
 @[simp]
 theorem cyclesMap_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
     cyclesMap (f ≫ g) i = cyclesMap f i ≫ cyclesMap g i := by dsimp only [cyclesMap];
@@ -332,9 +269,6 @@ variable [HasImages V] [HasImageMaps V]
 
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
-/- warning: boundaries_map -> boundariesMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align boundaries_map boundariesMapₓ'. -/
 /-- The morphism between boundaries induced by a chain map.
 -/
 abbrev boundariesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.boundaries i : V) ⟶ (C₂.boundaries i : V) :=
@@ -364,9 +298,6 @@ variable [HasEqualizers V] [HasImages V] [HasImageMaps V]
 
 variable {C₁ C₂ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
-/- warning: boundaries_to_cycles_naturality -> boundariesToCycles_naturality is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align boundaries_to_cycles_naturality boundariesToCycles_naturalityₓ'. -/
 @[simp, reassoc]
 theorem boundariesToCycles_naturality (i : ι) :
     boundariesMap f i ≫ C₂.boundariesToCycles i = C₁.boundariesToCycles i ≫ cyclesMap f i := by ext;
Diff
@@ -297,10 +297,7 @@ theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
 <too large>
 Case conversion may be inaccurate. Consider using '#align cycles_map_id cyclesMap_idₓ'. -/
 @[simp]
-theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ :=
-  by
-  dsimp only [cyclesMap]
-  simp
+theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ := by dsimp only [cyclesMap]; simp
 #align cycles_map_id cyclesMap_id
 
 /- warning: cycles_map_comp -> cyclesMap_comp is a dubious translation:
@@ -308,9 +305,7 @@ theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ :=
 Case conversion may be inaccurate. Consider using '#align cycles_map_comp cyclesMap_compₓ'. -/
 @[simp]
 theorem cyclesMap_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
-    cyclesMap (f ≫ g) i = cyclesMap f i ≫ cyclesMap g i :=
-  by
-  dsimp only [cyclesMap]
+    cyclesMap (f ≫ g) i = cyclesMap f i ≫ cyclesMap g i := by dsimp only [cyclesMap];
   simp [subobject.factor_thru_right]
 #align cycles_map_comp cyclesMap_comp
 
@@ -374,9 +369,7 @@ variable {C₁ C₂ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 Case conversion may be inaccurate. Consider using '#align boundaries_to_cycles_naturality boundariesToCycles_naturalityₓ'. -/
 @[simp, reassoc]
 theorem boundariesToCycles_naturality (i : ι) :
-    boundariesMap f i ≫ C₂.boundariesToCycles i = C₁.boundariesToCycles i ≫ cyclesMap f i :=
-  by
-  ext
+    boundariesMap f i ≫ C₂.boundariesToCycles i = C₁.boundariesToCycles i ≫ cyclesMap f i := by ext;
   simp
 #align boundaries_to_cycles_naturality boundariesToCycles_naturality
 
Diff
@@ -118,10 +118,7 @@ theorem boundaries_eq_imageSubobject [HasEqualizers V] {i j : ι} (r : c.Rel i j
 #align homological_complex.boundaries_eq_image_subobject HomologicalComplex.boundaries_eq_imageSubobject
 
 /- warning: homological_complex.boundaries_iso_image -> HomologicalComplex.boundariesIsoImage is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u2} V _inst_1] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (CategoryTheory.Iso.{u1, u2} V _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j)) (CategoryTheory.Limits.image.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (HomologicalComplex.boundariesIsoImage._proof_1.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i j)))
-but is expected to have type
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u2} V _inst_1] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (CategoryTheory.Iso.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j)) (CategoryTheory.Limits.image.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 _inst_3 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_iso_image HomologicalComplex.boundariesIsoImageₓ'. -/
 /-- The underlying object of `C.boundaries j` is isomorphic to `image (C.d i j)`,
 for any `i` such that `rel i j`.
@@ -174,10 +171,7 @@ abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
 #align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCycles
 
 /- warning: homological_complex.image_to_kernel_as_boundaries_to_cycles -> HomologicalComplex.imageToKernel_as_boundariesToCycles is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι) (h : LE.le.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toHasLe.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i))) (CategoryTheory.Subobject.ofLE.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) h) (HomologicalComplex.boundariesToCycles.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 _inst_4 C i)
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (i : ι) (h : LE.le.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i)), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i))) (CategoryTheory.Subobject.ofLE.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i) h) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 _inst_4 C i)
+<too large>
 Case conversion may be inaccurate. Consider using '#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCyclesₓ'. -/
 /-- Prefer `boundaries_to_cycles`. -/
 @[simp]
@@ -292,10 +286,7 @@ abbrev cyclesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles i : V) ⟶ (C₂.cy
 #align cycles_map cyclesMap
 
 /- warning: cycles_map_arrow -> cyclesMap_arrow is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (CategoryTheory.Subobject.arrow.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i))) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i) (CategoryTheory.Subobject.arrow.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.Hom.f.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ C₂ f i))
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (CategoryTheory.Subobject.arrow.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ _inst_3 i))) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (CategoryTheory.Subobject.arrow.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.Hom.f.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ C₂ f i))
+<too large>
 Case conversion may be inaccurate. Consider using '#align cycles_map_arrow cyclesMap_arrowₓ'. -/
 @[simp, reassoc, elementwise]
 theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
@@ -303,10 +294,7 @@ theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
 #align cycles_map_arrow cyclesMap_arrow
 
 /- warning: cycles_map_id -> cyclesMap_id is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} (i : ι), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i))) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ C₁ (CategoryTheory.CategoryStruct.id.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c)) C₁) i) (CategoryTheory.CategoryStruct.id.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i))) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₁ (CategoryTheory.CategoryStruct.id.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c)) C₁) i) (CategoryTheory.CategoryStruct.id.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align cycles_map_id cyclesMap_idₓ'. -/
 @[simp]
 theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ :=
@@ -316,10 +304,7 @@ theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ :=
 #align cycles_map_id cyclesMap_id
 
 /- warning: cycles_map_comp -> cyclesMap_comp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₃ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) (g : Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₂ C₃) (i : ι), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ _inst_3 i))) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ C₃ (CategoryTheory.CategoryStruct.comp.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c)) C₁ C₂ C₃ f g) i) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ _inst_3 i)) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₂ C₃ g i))
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₃ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₁ C₂) (g : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₂ C₃) (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ _inst_3 i))) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₃ (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (max u1 u3) u2} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c)) C₁ C₂ C₃ f g) i) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ _inst_3 i)) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₂ C₃ g i))
+<too large>
 Case conversion may be inaccurate. Consider using '#align cycles_map_comp cyclesMap_compₓ'. -/
 @[simp]
 theorem cyclesMap_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
@@ -353,10 +338,7 @@ variable [HasImages V] [HasImageMaps V]
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
 /- warning: boundaries_map -> boundariesMap is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImageMaps.{u1, u2} V _inst_1 _inst_3] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c}, (Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) -> (forall (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₂ i)))
-but is expected to have type
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImageMaps.{u1, u2} V _inst_1 _inst_3] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c}, (Quiver.Hom.{max (succ u1) (succ u3), max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3, max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u1 u3, max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) -> (forall (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ i)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₂ i)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align boundaries_map boundariesMapₓ'. -/
 /-- The morphism between boundaries induced by a chain map.
 -/
@@ -388,10 +370,7 @@ variable [HasEqualizers V] [HasImages V] [HasImageMaps V]
 variable {C₁ C₂ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
 /- warning: boundaries_to_cycles_naturality -> boundariesToCycles_naturality is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_5 : CategoryTheory.Limits.HasImageMaps.{u1, u2} V _inst_1 _inst_4] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) i))) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C₂ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) i)) (boundariesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 _inst_5 C₁ C₂ f i) (HomologicalComplex.boundariesToCycles.{u1, u2, u3} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) _inst_4 C₂ i)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) i)) (HomologicalComplex.boundariesToCycles.{u1, u2, u3} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) _inst_4 C₁ i) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) C₁ C₂ f i))
-but is expected to have type
-  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u2, u3} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] [_inst_5 : CategoryTheory.Limits.HasImageMaps.{u2, u3} V _inst_1 _inst_4] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i))) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₂ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (boundariesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 _inst_5 C₁ C₂ f i) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) _inst_4 C₂ i)) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) _inst_4 C₁ i) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) C₁ C₂ f i))
+<too large>
 Case conversion may be inaccurate. Consider using '#align boundaries_to_cycles_naturality boundariesToCycles_naturalityₓ'. -/
 @[simp, reassoc]
 theorem boundariesToCycles_naturality (i : ι) :
Diff
@@ -297,7 +297,7 @@ lean 3 declaration is
 but is expected to have type
   forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (CategoryTheory.Subobject.arrow.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ _inst_3 i))) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (CategoryTheory.Subobject.arrow.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.Hom.f.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ C₂ f i))
 Case conversion may be inaccurate. Consider using '#align cycles_map_arrow cyclesMap_arrowₓ'. -/
-@[simp, reassoc.1, elementwise]
+@[simp, reassoc, elementwise]
 theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
     cyclesMap f i ≫ (C₂.cycles i).arrow = (C₁.cycles i).arrow ≫ f.f i := by simp
 #align cycles_map_arrow cyclesMap_arrow
@@ -393,7 +393,7 @@ lean 3 declaration is
 but is expected to have type
   forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u2, u3} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] [_inst_5 : CategoryTheory.Limits.HasImageMaps.{u2, u3} V _inst_1 _inst_4] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i))) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₂ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (boundariesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 _inst_5 C₁ C₂ f i) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) _inst_4 C₂ i)) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) _inst_4 C₁ i) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) C₁ C₂ f i))
 Case conversion may be inaccurate. Consider using '#align boundaries_to_cycles_naturality boundariesToCycles_naturalityₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem boundariesToCycles_naturality (i : ι) :
     boundariesMap f i ≫ C₂.boundariesToCycles i = C₁.boundariesToCycles i ≫ cyclesMap f i :=
   by
Diff
@@ -82,7 +82,7 @@ def cyclesIsoKernel {i j : ι} (r : c.Rel i j) : (C.cycles i : V) ≅ kernel (C.
 
 /- warning: homological_complex.cycles_eq_top -> HomologicalComplex.cycles_eq_top is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι}, (Not (ComplexShape.Rel.{u3} ι c i (ComplexShape.next.{u3} ι c i))) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) (Top.top.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (OrderTop.toHasTop.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (CategoryTheory.Subobject.orderTop.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι}, (Not (ComplexShape.Rel.{u3} ι c i (ComplexShape.next.{u3} ι c i))) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) (Top.top.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (OrderTop.toHasTop.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toHasLe.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (CategoryTheory.Subobject.orderTop.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))
 but is expected to have type
   forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {i : ι}, (Not (ComplexShape.Rel.{u1} ι c i (ComplexShape.next.{u1} ι c i))) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i) (Top.top.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (OrderTop.toTop.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (CategoryTheory.Subobject.orderTop.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))
 Case conversion may be inaccurate. Consider using '#align homological_complex.cycles_eq_top HomologicalComplex.cycles_eq_topₓ'. -/
@@ -133,7 +133,7 @@ def boundariesIsoImage [HasEqualizers V] {i j : ι} (r : c.Rel i j) :
 
 /- warning: homological_complex.boundaries_eq_bot -> HomologicalComplex.boundaries_eq_bot is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroObject.{u1, u2} V _inst_1] {j : ι}, (Not (ComplexShape.Rel.{u3} ι c (ComplexShape.prev.{u3} ι c j) j)) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j) (Bot.bot.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (OrderBot.toHasBot.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (Preorder.toLE.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))) (CategoryTheory.Subobject.orderBot.{u1, u2} V _inst_1 (CategoryTheory.Limits.HasZeroObject.hasInitial.{u1, u2} V _inst_1 _inst_4) (CategoryTheory.Limits.HasZeroObject.initialMonoClass.{u1, u2} V _inst_1 _inst_4) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))))
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroObject.{u1, u2} V _inst_1] {j : ι}, (Not (ComplexShape.Rel.{u3} ι c (ComplexShape.prev.{u3} ι c j) j)) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j) (Bot.bot.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (OrderBot.toHasBot.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (Preorder.toHasLe.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))) (CategoryTheory.Subobject.orderBot.{u1, u2} V _inst_1 (CategoryTheory.Limits.HasZeroObject.hasInitial.{u1, u2} V _inst_1 _inst_4) (CategoryTheory.Limits.HasZeroObject.initialMonoClass.{u1, u2} V _inst_1 _inst_4) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))))
 but is expected to have type
   forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroObject.{u2, u3} V _inst_1] {j : ι}, (Not (ComplexShape.Rel.{u1} ι c (ComplexShape.prev.{u1} ι c j) j)) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C j) (Bot.bot.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (OrderBot.toBot.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)))) (CategoryTheory.Subobject.orderBot.{u2, u3} V _inst_1 (CategoryTheory.Limits.HasZeroObject.hasInitial.{u2, u3} V _inst_1 _inst_4) (CategoryTheory.Limits.HasZeroObject.initialMonoClass.{u2, u3} V _inst_1 _inst_4) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)))))
 Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_eq_bot HomologicalComplex.boundaries_eq_botₓ'. -/
@@ -152,7 +152,7 @@ variable [HasKernels V] [HasImages V]
 
 /- warning: homological_complex.boundaries_le_cycles -> HomologicalComplex.boundaries_le_cycles is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι), LE.le.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι), LE.le.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toHasLe.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)
 but is expected to have type
   forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (i : ι), LE.le.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i)
 Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cyclesₓ'. -/
@@ -175,7 +175,7 @@ abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
 
 /- warning: homological_complex.image_to_kernel_as_boundaries_to_cycles -> HomologicalComplex.imageToKernel_as_boundariesToCycles is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι) (h : LE.le.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i))) (CategoryTheory.Subobject.ofLE.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) h) (HomologicalComplex.boundariesToCycles.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 _inst_4 C i)
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι) (h : LE.le.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toHasLe.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i))) (CategoryTheory.Subobject.ofLE.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) h) (HomologicalComplex.boundariesToCycles.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 _inst_4 C i)
 but is expected to have type
   forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (i : ι) (h : LE.le.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i)), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i))) (CategoryTheory.Subobject.ofLE.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i) h) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 _inst_4 C i)
 Case conversion may be inaccurate. Consider using '#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCyclesₓ'. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.homology.homology
-! leanprover-community/mathlib commit 618ea3d5c99240cd7000d8376924906a148bf9ff
+! leanprover-community/mathlib commit 8eb9c42d4d34c77f6ee84ea766ae4070233a973c
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.CategoryTheory.GradedObject
 /-!
 # The homology of a complex
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Given `C : homological_complex V c`, we have `C.cycles i` and `C.boundaries i`,
 both defined as subobjects of `C.X i`.
 
Diff
@@ -46,16 +46,30 @@ section Cycles
 
 variable [HasKernels V]
 
+#print HomologicalComplex.cycles /-
 /-- The cycles at index `i`, as a subobject. -/
 abbrev cycles (i : ι) : Subobject (C.pt i) :=
   kernelSubobject (C.dFrom i)
 #align homological_complex.cycles HomologicalComplex.cycles
+-/
 
+/- warning: homological_complex.cycles_eq_kernel_subobject -> HomologicalComplex.cycles_eq_kernelSubobject is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) (CategoryTheory.Limits.kernelSubobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) _inst_2 (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 _inst_2 _inst_3 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j))))
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {i : ι} {j : ι}, (ComplexShape.Rel.{u1} ι c i j) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i) (CategoryTheory.Limits.kernelSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j) _inst_2 (HomologicalComplex.d.{u2, u3, u1} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasKernels.has_limit.{u2, u3} V _inst_1 _inst_2 _inst_3 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u2, u3, u1} ι V _inst_1 _inst_2 c C i j))))
+Case conversion may be inaccurate. Consider using '#align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles_eq_kernelSubobjectₓ'. -/
 theorem cycles_eq_kernelSubobject {i j : ι} (r : c.Rel i j) :
     C.cycles i = kernelSubobject (C.d i j) :=
   C.kernel_from_eq_kernel r
 #align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles_eq_kernelSubobject
 
+/- warning: homological_complex.cycles_iso_kernel -> HomologicalComplex.cyclesIsoKernel is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (CategoryTheory.Iso.{u1, u2} V _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)) (CategoryTheory.Limits.kernel.{u1, u2} V _inst_1 _inst_2 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (HomologicalComplex.cyclesIsoKernel._proof_1.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i j)))
+but is expected to have type
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (CategoryTheory.Iso.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)) (CategoryTheory.Limits.kernel.{u1, u2} V _inst_1 _inst_2 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasKernels.has_limit.{u1, u2} V _inst_1 _inst_2 _inst_3 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j))))
+Case conversion may be inaccurate. Consider using '#align homological_complex.cycles_iso_kernel HomologicalComplex.cyclesIsoKernelₓ'. -/
 /-- The underlying object of `C.cycles i` is isomorphic to `kernel (C.d i j)`,
 for any `j` such that `rel i j`.
 -/
@@ -63,6 +77,12 @@ def cyclesIsoKernel {i j : ι} (r : c.Rel i j) : (C.cycles i : V) ≅ kernel (C.
   Subobject.isoOfEq _ _ (C.cycles_eq_kernelSubobject r) ≪≫ kernelSubobjectIso (C.d i j)
 #align homological_complex.cycles_iso_kernel HomologicalComplex.cyclesIsoKernel
 
+/- warning: homological_complex.cycles_eq_top -> HomologicalComplex.cycles_eq_top is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {i : ι}, (Not (ComplexShape.Rel.{u3} ι c i (ComplexShape.next.{u3} ι c i))) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) (Top.top.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (OrderTop.toHasTop.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (CategoryTheory.Subobject.orderTop.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {i : ι}, (Not (ComplexShape.Rel.{u1} ι c i (ComplexShape.next.{u1} ι c i))) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i) (Top.top.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (OrderTop.toTop.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (CategoryTheory.Subobject.orderTop.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))
+Case conversion may be inaccurate. Consider using '#align homological_complex.cycles_eq_top HomologicalComplex.cycles_eq_topₓ'. -/
 theorem cycles_eq_top {i} (h : ¬c.Rel i (c.next i)) : C.cycles i = ⊤ :=
   by
   rw [eq_top_iff]
@@ -76,16 +96,30 @@ section Boundaries
 
 variable [HasImages V]
 
+#print HomologicalComplex.boundaries /-
 /-- The boundaries at index `i`, as a subobject. -/
 abbrev boundaries (C : HomologicalComplex V c) (j : ι) : Subobject (C.pt j) :=
   imageSubobject (C.dTo j)
 #align homological_complex.boundaries HomologicalComplex.boundaries
+-/
 
+/- warning: homological_complex.boundaries_eq_image_subobject -> HomologicalComplex.boundaries_eq_imageSubobject is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u2} V _inst_1] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j) (CategoryTheory.Limits.imageSubobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasImages.hasImage.{u1, u2} V _inst_1 _inst_3 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j))))
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u2, u3} V _inst_1] {i : ι} {j : ι}, (ComplexShape.Rel.{u1} ι c i j) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C j) (CategoryTheory.Limits.imageSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u2, u3, u1} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasImages.has_image.{u2, u3} V _inst_1 _inst_3 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u2, u3, u1} ι V _inst_1 _inst_2 c C i j))))
+Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_eq_image_subobject HomologicalComplex.boundaries_eq_imageSubobjectₓ'. -/
 theorem boundaries_eq_imageSubobject [HasEqualizers V] {i j : ι} (r : c.Rel i j) :
     C.boundaries j = imageSubobject (C.d i j) :=
   C.image_to_eq_image r
 #align homological_complex.boundaries_eq_image_subobject HomologicalComplex.boundaries_eq_imageSubobject
 
+/- warning: homological_complex.boundaries_iso_image -> HomologicalComplex.boundariesIsoImage is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u2} V _inst_1] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (CategoryTheory.Iso.{u1, u2} V _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j)) (CategoryTheory.Limits.image.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (HomologicalComplex.boundariesIsoImage._proof_1.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i j)))
+but is expected to have type
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasEqualizers.{u1, u2} V _inst_1] {i : ι} {j : ι}, (ComplexShape.Rel.{u3} ι c i j) -> (CategoryTheory.Iso.{u1, u2} V _inst_1 (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j)) (CategoryTheory.Limits.image.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j) (CategoryTheory.Limits.HasImages.has_image.{u1, u2} V _inst_1 _inst_3 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C j) (HomologicalComplex.d.{u1, u2, u3} ι V _inst_1 _inst_2 c C i j))))
+Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_iso_image HomologicalComplex.boundariesIsoImageₓ'. -/
 /-- The underlying object of `C.boundaries j` is isomorphic to `image (C.d i j)`,
 for any `i` such that `rel i j`.
 -/
@@ -94,6 +128,12 @@ def boundariesIsoImage [HasEqualizers V] {i j : ι} (r : c.Rel i j) :
   Subobject.isoOfEq _ _ (C.boundaries_eq_imageSubobject r) ≪≫ imageSubobjectIso (C.d i j)
 #align homological_complex.boundaries_iso_image HomologicalComplex.boundariesIsoImage
 
+/- warning: homological_complex.boundaries_eq_bot -> HomologicalComplex.boundaries_eq_bot is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroObject.{u1, u2} V _inst_1] {j : ι}, (Not (ComplexShape.Rel.{u3} ι c (ComplexShape.prev.{u3} ι c j) j)) -> (Eq.{succ (max u2 u1)} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C j) (Bot.bot.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (OrderBot.toHasBot.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (Preorder.toLE.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))) (CategoryTheory.Subobject.orderBot.{u1, u2} V _inst_1 (CategoryTheory.Limits.HasZeroObject.hasInitial.{u1, u2} V _inst_1 _inst_4) (CategoryTheory.Limits.HasZeroObject.initialMonoClass.{u1, u2} V _inst_1 _inst_4) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C j)))))
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) [_inst_3 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasZeroObject.{u2, u3} V _inst_1] {j : ι}, (Not (ComplexShape.Rel.{u1} ι c (ComplexShape.prev.{u1} ι c j) j)) -> (Eq.{max (succ u3) (succ u2)} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C j) (Bot.bot.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (OrderBot.toBot.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)))) (CategoryTheory.Subobject.orderBot.{u2, u3} V _inst_1 (CategoryTheory.Limits.HasZeroObject.hasInitial.{u2, u3} V _inst_1 _inst_4) (CategoryTheory.Limits.HasZeroObject.initialMonoClass.{u2, u3} V _inst_1 _inst_4) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C j)))))
+Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_eq_bot HomologicalComplex.boundaries_eq_botₓ'. -/
 theorem boundaries_eq_bot [HasZeroObject V] {j} (h : ¬c.Rel (c.prev j) j) : C.boundaries j = ⊥ :=
   by
   rw [eq_bot_iff]
@@ -107,10 +147,22 @@ section
 
 variable [HasKernels V] [HasImages V]
 
+/- warning: homological_complex.boundaries_le_cycles -> HomologicalComplex.boundaries_le_cycles is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι), LE.le.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (i : ι), LE.le.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i)
+Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cyclesₓ'. -/
 theorem boundaries_le_cycles (C : HomologicalComplex V c) (i : ι) : C.boundaries i ≤ C.cycles i :=
   image_le_kernel _ _ (C.dTo_comp_dFrom i)
 #align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cycles
 
+/- warning: homological_complex.boundaries_to_cycles -> HomologicalComplex.boundariesToCycles is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i))
+but is expected to have type
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i))
+Case conversion may be inaccurate. Consider using '#align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCyclesₓ'. -/
 /-- The canonical map from `boundaries i` to `cycles i`.
 -/
 abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
@@ -118,21 +170,30 @@ abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
   imageToKernel _ _ (C.dTo_comp_dFrom i)
 #align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCycles
 
+/- warning: homological_complex.image_to_kernel_as_boundaries_to_cycles -> HomologicalComplex.imageToKernel_as_boundariesToCycles is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] (C : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (i : ι) (h : LE.le.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Subobject.partialOrder.{u2, u1} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i))) (CategoryTheory.Subobject.ofLE.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C _inst_3 i) h) (HomologicalComplex.boundariesToCycles.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 _inst_4 C i)
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] (C : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (i : ι) (h : LE.le.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.toLE.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i)), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i))) (CategoryTheory.Subobject.ofLE.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C i) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C _inst_3 i) h) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 _inst_4 C i)
+Case conversion may be inaccurate. Consider using '#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCyclesₓ'. -/
 /-- Prefer `boundaries_to_cycles`. -/
 @[simp]
-theorem image_to_kernel_as_boundariesToCycles (C : HomologicalComplex V c) (i : ι) (h) :
+theorem imageToKernel_as_boundariesToCycles (C : HomologicalComplex V c) (i : ι) (h) :
     (C.boundaries i).of_le (C.cycles i) h = C.boundariesToCycles i :=
   rfl
-#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.image_to_kernel_as_boundariesToCycles
+#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCycles
 
 variable [HasCokernels V]
 
+#print HomologicalComplex.homology /-
 /-- The homology of a complex at index `i`.
 -/
 abbrev homology (C : HomologicalComplex V c) (i : ι) : V :=
   homology (C.dTo i) (C.dFrom i) (C.dTo_comp_dFrom i)
 #align homological_complex.homology HomologicalComplex.homology
+-/
 
+#print HomologicalComplex.homologyIso /-
 /-- The `j`th homology of a homological complex (as kernel of 'the differential from `Cⱼ`' modulo
 the image of 'the differential to `Cⱼ`') is isomorphic to the kernel of `d : Cⱼ → Cₖ` modulo
 the image of `d : Cᵢ → Cⱼ` when `rel i j` and `rel j k`. -/
@@ -144,11 +205,13 @@ def homologyIso (C : HomologicalComplex V c) {i j k : ι} (hij : c.Rel i j) (hjk
       dsimp <;> rw [C.d_from_comp_X_next_iso hjk, category.id_comp])
     rfl
 #align homological_complex.homology_iso HomologicalComplex.homologyIso
+-/
 
 end
 
 end HomologicalComplex
 
+#print ChainComplex.homologyZeroIso /-
 /-- The 0th homology of a chain complex is isomorphic to the cokernel of `d : C₁ ⟶ C₀`. -/
 def ChainComplex.homologyZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
     (C : ChainComplex V ℕ) [Epi (factorThruImage (C.d 1 0))] : C.homology 0 ≅ cokernel (C.d 1 0) :=
@@ -163,7 +226,9 @@ def ChainComplex.homologyZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
         rfl).trans <|
     homologyOfZeroRight _
 #align chain_complex.homology_zero_iso ChainComplex.homologyZeroIso
+-/
 
+#print CochainComplex.homologyZeroIso /-
 /-- The 0th cohomology of a cochain complex is isomorphic to the kernel of `d : C₀ → C₁`. -/
 def CochainComplex.homologyZeroIso [HasZeroObject V] [HasKernels V] [HasImages V] [HasCokernels V]
     (C : CochainComplex V ℕ) : C.homology 0 ≅ kernel (C.d 0 1) :=
@@ -176,7 +241,9 @@ def CochainComplex.homologyZeroIso [HasZeroObject V] [HasKernels V] [HasImages V
         by simpa).trans <|
     homologyOfZeroLeft _
 #align cochain_complex.homology_zero_iso CochainComplex.homologyZeroIso
+-/
 
+#print ChainComplex.homologySuccIso /-
 /-- The `n + 1`th homology of a chain complex (as kernel of 'the differential from `Cₙ₊₁`' modulo
 the image of 'the differential to `Cₙ₊₁`') is isomorphic to the kernel of `d : Cₙ₊₁ → Cₙ` modulo
 the image of `d : Cₙ₊₂ → Cₙ₊₁`. -/
@@ -185,7 +252,9 @@ def ChainComplex.homologySuccIso [HasKernels V] [HasImages V] [HasCokernels V]
     C.homology (n + 1) ≅ homology (C.d (n + 2) (n + 1)) (C.d (n + 1) n) (C.d_comp_d _ _ _) :=
   C.homologyIso rfl rfl
 #align chain_complex.homology_succ_iso ChainComplex.homologySuccIso
+-/
 
+#print CochainComplex.homologySuccIso /-
 /-- The `n + 1`th cohomology of a cochain complex (as kernel of 'the differential from `Cₙ₊₁`'
 modulo the image of 'the differential to `Cₙ₊₁`') is isomorphic to the kernel of `d : Cₙ₊₁ → Cₙ₊₂`
 modulo the image of `d : Cₙ → Cₙ₊₁`. -/
@@ -194,6 +263,7 @@ def CochainComplex.homologySuccIso [HasKernels V] [HasImages V] [HasCokernels V]
     C.homology (n + 1) ≅ homology (C.d n (n + 1)) (C.d (n + 1) (n + 2)) (C.d_comp_d _ _ _) :=
   C.homologyIso rfl rfl
 #align cochain_complex.homology_succ_iso CochainComplex.homologySuccIso
+-/
 
 open HomologicalComplex
 
@@ -206,17 +276,35 @@ variable [HasKernels V]
 
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
+/- warning: cycles_map -> cyclesMap is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c}, (Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) -> (forall (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i)))
+but is expected to have type
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c}, (Quiver.Hom.{max (succ u1) (succ u3), max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3, max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u1 u3, max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) -> (forall (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i)))
+Case conversion may be inaccurate. Consider using '#align cycles_map cyclesMapₓ'. -/
 /-- The morphism between cycles induced by a chain map.
 -/
 abbrev cyclesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles i : V) ⟶ (C₂.cycles i : V) :=
   Subobject.factorThru _ ((C₁.cycles i).arrow ≫ f.f i) (kernelSubobject_factors _ _ (by simp))
 #align cycles_map cyclesMap
 
+/- warning: cycles_map_arrow -> cyclesMap_arrow is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (CategoryTheory.Subobject.arrow.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i))) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i) (CategoryTheory.Subobject.arrow.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.Hom.f.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ C₂ f i))
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (CategoryTheory.Subobject.arrow.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ _inst_3 i))) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i) (CategoryTheory.Subobject.arrow.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (HomologicalComplex.Hom.f.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ C₂ f i))
+Case conversion may be inaccurate. Consider using '#align cycles_map_arrow cyclesMap_arrowₓ'. -/
 @[simp, reassoc.1, elementwise]
 theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
     cyclesMap f i ≫ (C₂.cycles i).arrow = (C₁.cycles i).arrow ≫ f.f i := by simp
 #align cycles_map_arrow cyclesMap_arrow
 
+/- warning: cycles_map_id -> cyclesMap_id is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} (i : ι), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i))) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ C₁ (CategoryTheory.CategoryStruct.id.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c)) C₁) i) (CategoryTheory.CategoryStruct.id.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)))
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i))) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₁ (CategoryTheory.CategoryStruct.id.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c)) C₁) i) (CategoryTheory.CategoryStruct.id.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)))
+Case conversion may be inaccurate. Consider using '#align cycles_map_id cyclesMap_idₓ'. -/
 @[simp]
 theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ :=
   by
@@ -224,6 +312,12 @@ theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ :=
   simp
 #align cycles_map_id cyclesMap_id
 
+/- warning: cycles_map_comp -> cyclesMap_comp is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u1, u2} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₃ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) (g : Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₂ C₃) (i : ι), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ _inst_3 i))) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ C₃ (CategoryTheory.CategoryStruct.comp.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c)) C₁ C₂ C₃ f g) i) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₃ _inst_3 i)) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₂ C₃ g i))
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasKernels.{u2, u3} V _inst_1 _inst_2] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₃ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₁ C₂) (g : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₂ C₃) (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ _inst_3 i))) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₃ (CategoryTheory.CategoryStruct.comp.{max u1 u2, max (max u1 u3) u2} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max (max u1 u3) u2} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c)) C₁ C₂ C₃ f g) i) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ _inst_3 i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₃ _inst_3 i)) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₁ C₂ f i) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_3 C₂ C₃ g i))
+Case conversion may be inaccurate. Consider using '#align cycles_map_comp cyclesMap_compₓ'. -/
 @[simp]
 theorem cyclesMap_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
     cyclesMap (f ≫ g) i = cyclesMap f i ≫ cyclesMap g i :=
@@ -234,6 +328,7 @@ theorem cyclesMap_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
 
 variable (V c)
 
+#print cyclesFunctor /-
 /-- Cycles as a functor. -/
 @[simps]
 def cyclesFunctor (i : ι) : HomologicalComplex V c ⥤ V
@@ -241,6 +336,7 @@ def cyclesFunctor (i : ι) : HomologicalComplex V c ⥤ V
   obj C := C.cycles i
   map C₁ C₂ f := cyclesMap f i
 #align cycles_functor cyclesFunctor
+-/
 
 end
 
@@ -253,6 +349,12 @@ variable [HasImages V] [HasImageMaps V]
 
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
+/- warning: boundaries_map -> boundariesMap is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImageMaps.{u1, u2} V _inst_1 _inst_3] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c}, (Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) -> (forall (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₂ i)))
+but is expected to have type
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImageMaps.{u1, u2} V _inst_1 _inst_3] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c}, (Quiver.Hom.{max (succ u1) (succ u3), max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3, max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u1 u3, max (max u2 u1) u3} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) -> (forall (i : ι), Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₁ i)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u2 u1} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u1, u2} V _inst_1 (HomologicalComplex.X.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_3 C₂ i)))
+Case conversion may be inaccurate. Consider using '#align boundaries_map boundariesMapₓ'. -/
 /-- The morphism between boundaries induced by a chain map.
 -/
 abbrev boundariesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.boundaries i : V) ⟶ (C₂.boundaries i : V) :=
@@ -261,6 +363,7 @@ abbrev boundariesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.boundaries i : V) ⟶
 
 variable (V c)
 
+#print boundariesFunctor /-
 /-- Boundaries as a functor. -/
 @[simps]
 def boundariesFunctor (i : ι) : HomologicalComplex V c ⥤ V
@@ -268,6 +371,7 @@ def boundariesFunctor (i : ι) : HomologicalComplex V c ⥤ V
   obj C := C.boundaries i
   map C₁ C₂ f := imageSubobjectMap (f.sqTo i)
 #align boundaries_functor boundariesFunctor
+-/
 
 end
 
@@ -280,6 +384,12 @@ variable [HasEqualizers V] [HasImages V] [HasImageMaps V]
 
 variable {C₁ C₂ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
+/- warning: boundaries_to_cycles_naturality -> boundariesToCycles_naturality is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u3}} {V : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u1, u2} V _inst_1] {c : ComplexShape.{u3} ι} [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u1, u2} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u1, u2} V _inst_1] [_inst_5 : CategoryTheory.Limits.HasImageMaps.{u1, u2} V _inst_1 _inst_4] {C₁ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{succ (max u3 u1), max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u3 u1, max u2 u3 u1} (HomologicalComplex.{u1, u2, u3} ι V _inst_1 _inst_2 c) (HomologicalComplex.CategoryTheory.category.{u1, u2, u3} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} V (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) i))) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C₂ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) i)) (boundariesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 _inst_5 C₁ C₂ f i) (HomologicalComplex.boundariesToCycles.{u1, u2, u3} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) _inst_4 C₂ i)) (CategoryTheory.CategoryStruct.comp.{u1, u2} V (CategoryTheory.Category.toCategoryStruct.{u1, u2} V _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.boundaries.{u1, u2, u3} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₁ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) i)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.Subobject.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i)) V (CategoryTheory.Subobject.hasCoe.{u1, u2} V _inst_1 (HomologicalComplex.x.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ i))))) (HomologicalComplex.cycles.{u1, u2, u3} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) i)) (HomologicalComplex.boundariesToCycles.{u1, u2, u3} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) _inst_4 C₁ i) (cyclesMap.{u1, u2, u3} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u1, u2} V _inst_1 _inst_2 _inst_3) C₁ C₂ f i))
+but is expected to have type
+  forall {ι : Type.{u1}} {V : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} V] [_inst_2 : CategoryTheory.Limits.HasZeroMorphisms.{u2, u3} V _inst_1] {c : ComplexShape.{u1} ι} [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u2, u3} V _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u2, u3} V _inst_1] [_inst_5 : CategoryTheory.Limits.HasImageMaps.{u2, u3} V _inst_1 _inst_4] {C₁ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} {C₂ : HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c} (f : Quiver.Hom.{max (succ u2) (succ u1), max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u3 u2) u1} (HomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c) (HomologicalComplex.instCategoryHomologicalComplex.{u2, u3, u1} ι V _inst_1 _inst_2 c))) C₁ C₂) (i : ι), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i))) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₂ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (boundariesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 _inst_5 C₁ C₂ f i) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) _inst_4 C₂ i)) (CategoryTheory.CategoryStruct.comp.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.boundaries.{u2, u3, u1} ι V _inst_1 _inst_2 c _inst_4 C₁ i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₁ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (Prefunctor.obj.{max (succ u3) (succ u2), succ u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))))) V (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} V (CategoryTheory.Category.toCategoryStruct.{u2, u3} V _inst_1)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, u2, max u3 u2, u3} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (PartialOrder.toPreorder.{max u3 u2} (CategoryTheory.Subobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)) (CategoryTheory.instPartialOrderSubobject.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i)))) V _inst_1 (CategoryTheory.Subobject.underlying.{u2, u3} V _inst_1 (HomologicalComplex.X.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ i))) (HomologicalComplex.cycles.{u2, u3, u1} ι V _inst_1 _inst_2 c C₂ (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) i)) (HomologicalComplex.boundariesToCycles.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) _inst_4 C₁ i) (cyclesMap.{u2, u3, u1} ι V _inst_1 _inst_2 c (CategoryTheory.Limits.hasKernels_of_hasEqualizers.{u2, u3} V _inst_1 _inst_2 _inst_3) C₁ C₂ f i))
+Case conversion may be inaccurate. Consider using '#align boundaries_to_cycles_naturality boundariesToCycles_naturalityₓ'. -/
 @[simp, reassoc.1]
 theorem boundariesToCycles_naturality (i : ι) :
     boundariesMap f i ≫ C₂.boundariesToCycles i = C₁.boundariesToCycles i ≫ cyclesMap f i :=
@@ -290,6 +400,7 @@ theorem boundariesToCycles_naturality (i : ι) :
 
 variable (V c)
 
+#print boundariesToCyclesNatTrans /-
 /-- The natural transformation from the boundaries functor to the cycles functor. -/
 @[simps]
 def boundariesToCyclesNatTrans (i : ι) : boundariesFunctor V c i ⟶ cyclesFunctor V c i
@@ -297,7 +408,9 @@ def boundariesToCyclesNatTrans (i : ι) : boundariesFunctor V c i ⟶ cyclesFunc
   app C := C.boundariesToCycles i
   naturality' C₁ C₂ f := boundariesToCycles_naturality f i
 #align boundaries_to_cycles_nat_trans boundariesToCyclesNatTrans
+-/
 
+#print homologyFunctor /-
 /-- The `i`-th homology, as a functor to `V`. -/
 @[simps]
 def homologyFunctor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V
@@ -316,7 +429,9 @@ def homologyFunctor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V
     simp only [hom.sq_from_comp, kernel_subobject_map_comp, homology.π_map_assoc, homology.π_map,
       category.assoc]
 #align homology_functor homologyFunctor
+-/
 
+#print gradedHomologyFunctor /-
 /-- The homology functor from `ι`-indexed complexes to `ι`-graded objects in `V`. -/
 @[simps]
 def gradedHomologyFunctor [HasCokernels V] : HomologicalComplex V c ⥤ GradedObject ι V
@@ -332,6 +447,7 @@ def gradedHomologyFunctor [HasCokernels V] : HomologicalComplex V c ⥤ GradedOb
     simp only [hom.sq_from_comp, kernel_subobject_map_comp, homology.π_map_assoc, pi.comp_apply,
       homology.π_map, homologyFunctor_map, category.assoc]
 #align graded_homology_functor gradedHomologyFunctor
+-/
 
 end
 
Diff
@@ -47,7 +47,7 @@ section Cycles
 variable [HasKernels V]
 
 /-- The cycles at index `i`, as a subobject. -/
-abbrev cycles (i : ι) : Subobject (C.x i) :=
+abbrev cycles (i : ι) : Subobject (C.pt i) :=
   kernelSubobject (C.dFrom i)
 #align homological_complex.cycles HomologicalComplex.cycles
 
@@ -77,7 +77,7 @@ section Boundaries
 variable [HasImages V]
 
 /-- The boundaries at index `i`, as a subobject. -/
-abbrev boundaries (C : HomologicalComplex V c) (j : ι) : Subobject (C.x j) :=
+abbrev boundaries (C : HomologicalComplex V c) (j : ι) : Subobject (C.pt j) :=
   imageSubobject (C.dTo j)
 #align homological_complex.boundaries HomologicalComplex.boundaries
 

Changes in mathlib4

mathlib3
mathlib4
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -35,9 +35,7 @@ universe v u
 open CategoryTheory CategoryTheory.Limits
 
 variable {ι : Type*}
-
 variable {V : Type u} [Category.{v} V] [HasZeroMorphisms V]
-
 variable {c : ComplexShape ι} (C : HomologicalComplex V c)
 
 open scoped Classical
@@ -203,7 +201,6 @@ open HomologicalComplex
 section
 
 variable [HasKernels V]
-
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
 /-- The morphism between cycles induced by a chain map. -/
@@ -250,7 +247,6 @@ end
 section
 
 variable [HasImages V] [HasImageMaps V]
-
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
 /-- The morphism between boundaries induced by a chain map. -/
@@ -275,7 +271,6 @@ section
 
 
 variable [HasEqualizers V] [HasImages V] [HasImageMaps V]
-
 variable {C₁ C₂ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
 -- Porting note: Originally `@[simp, reassoc.1]`
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -40,7 +40,8 @@ variable {V : Type u} [Category.{v} V] [HasZeroMorphisms V]
 
 variable {c : ComplexShape ι} (C : HomologicalComplex V c)
 
-open Classical ZeroObject
+open scoped Classical
+open ZeroObject
 
 noncomputable section
 
chore: classify simp can do this porting notes (#10619)

Classify by adding issue number (#10618) to porting notes claiming anything semantically equivalent to simp can prove this or simp can simplify this.

Diff
@@ -211,7 +211,7 @@ abbrev cycles'Map (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles' i : V) ⟶ (C₂.
 #align cycles_map cycles'Map
 
 -- Porting note: Originally `@[simp, reassoc.1, elementwise]`
-@[reassoc, elementwise] -- @[simp] -- Porting note: simp can prove this
+@[reassoc, elementwise] -- @[simp] -- Porting note (#10618): simp can prove this
 theorem cycles'Map_arrow (f : C₁ ⟶ C₂) (i : ι) :
     cycles'Map f i ≫ (C₂.cycles' i).arrow = (C₁.cycles' i).arrow ≫ f.f i := by simp
 #align cycles_map_arrow cycles'Map_arrow
chore: bump toolchain to v4.3.0-rc1 (#8051)

This incorporates changes from

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

They can all be closed when this is merged.

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

Diff
@@ -303,16 +303,6 @@ def homology'Functor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V wh
   -- here, but universe implementation details get in the way...
   obj C := C.homology' i
   map {C₁ C₂} f := homology'.map _ _ (f.sqTo i) (f.sqFrom i) rfl
-  map_id _ := by
-    simp only
-    ext1
-    simp only [homology'.π_map, kernelSubobjectMap_id, Hom.sqFrom_id, Category.id_comp,
-      Category.comp_id]
-  map_comp _ _ := by
-    simp only
-    ext1
-    simp only [Hom.sqFrom_comp, kernelSubobjectMap_comp, homology'.π_map_assoc, homology'.π_map,
-      Category.assoc]
 #align homology_functor homology'Functor
 
 /-- The homology functor from `ι`-indexed complexes to `ι`-graded objects in `V`. -/
@@ -320,18 +310,6 @@ def homology'Functor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V wh
 def gradedHomology'Functor [HasCokernels V] : HomologicalComplex V c ⥤ GradedObject ι V where
   obj C i := C.homology' i
   map {C C'} f i := (homology'Functor V c i).map f
-  map_id _ := by
-    ext
-    simp only [GradedObject.categoryOfGradedObjects_id]
-    ext
-    simp only [homology'.π_map, homology'Functor_map, kernelSubobjectMap_id, Hom.sqFrom_id,
-      Category.id_comp, Category.comp_id]
-  map_comp _ _ := by
-    ext
-    simp only [GradedObject.categoryOfGradedObjects_comp]
-    ext
-    simp only [Hom.sqFrom_comp, kernelSubobjectMap_comp, homology'.π_map_assoc, homology'.π_map,
-      homology'Functor_map, Category.assoc]
 #align graded_homology_functor gradedHomology'Functor
 
 end
refactor: introduce the new homology API for homological complex and rename the old one (#7954)

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>

Diff
@@ -12,14 +12,21 @@ import Mathlib.CategoryTheory.GradedObject
 /-!
 # The homology of a complex
 
-Given `C : HomologicalComplex V c`, we have `C.cycles i` and `C.boundaries i`,
+Given `C : HomologicalComplex V c`, we have `C.cycles' i` and `C.boundaries i`,
 both defined as subobjects of `C.X i`.
 
 We show these are functorial with respect to chain maps,
-as `C.cyclesMap f i` and `C.boundariesMap f i`.
+as `cyclesMap' f i` and `boundariesMap f i`.
 
-As a consequence we construct `homologyFunctor i : HomologicalComplex V c ⥤ V`,
+As a consequence we construct `homologyFunctor' i : HomologicalComplex V c ⥤ V`,
 computing the `i`-th homology.
+
+Note: Some definitions (specifically, names containing components `homology`, `cycles`)
+in this file have the suffix `'` so as to allow the development of the
+new homology API of homological complex (starting from
+`Algebra.Homology.ShortComplex.HomologicalComplex`). It is planned that these definitions
+shall be removed and replaced by the new API.
+
 -/
 
 
@@ -44,22 +51,22 @@ section Cycles
 variable [HasKernels V]
 
 /-- The cycles at index `i`, as a subobject. -/
-abbrev cycles (i : ι) : Subobject (C.X i) :=
+abbrev cycles' (i : ι) : Subobject (C.X i) :=
   kernelSubobject (C.dFrom i)
-#align homological_complex.cycles HomologicalComplex.cycles
+#align homological_complex.cycles HomologicalComplex.cycles'
 
-theorem cycles_eq_kernelSubobject {i j : ι} (r : c.Rel i j) :
-    C.cycles i = kernelSubobject (C.d i j) :=
+theorem cycles'_eq_kernelSubobject {i j : ι} (r : c.Rel i j) :
+    C.cycles' i = kernelSubobject (C.d i j) :=
   C.kernel_from_eq_kernel r
-#align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles_eq_kernelSubobject
+#align homological_complex.cycles_eq_kernel_subobject HomologicalComplex.cycles'_eq_kernelSubobject
 
-/-- The underlying object of `C.cycles i` is isomorphic to `kernel (C.d i j)`,
+/-- The underlying object of `C.cycles' i` is isomorphic to `kernel (C.d i j)`,
 for any `j` such that `Rel i j`. -/
-def cyclesIsoKernel {i j : ι} (r : c.Rel i j) : (C.cycles i : V) ≅ kernel (C.d i j) :=
-  Subobject.isoOfEq _ _ (C.cycles_eq_kernelSubobject r) ≪≫ kernelSubobjectIso (C.d i j)
-#align homological_complex.cycles_iso_kernel HomologicalComplex.cyclesIsoKernel
+def cycles'IsoKernel {i j : ι} (r : c.Rel i j) : (C.cycles' i : V) ≅ kernel (C.d i j) :=
+  Subobject.isoOfEq _ _ (C.cycles'_eq_kernelSubobject r) ≪≫ kernelSubobjectIso (C.d i j)
+#align homological_complex.cycles_iso_kernel HomologicalComplex.cycles'IsoKernel
 
-theorem cycles_eq_top {i} (h : ¬c.Rel i (c.next i)) : C.cycles i = ⊤ := by
+theorem cycles_eq_top {i} (h : ¬c.Rel i (c.next i)) : C.cycles' i = ⊤ := by
   rw [eq_top_iff]
   apply le_kernelSubobject
   rw [C.dFrom_eq_zero h, comp_zero]
@@ -100,50 +107,52 @@ section
 
 variable [HasKernels V] [HasImages V]
 
-theorem boundaries_le_cycles (C : HomologicalComplex V c) (i : ι) : C.boundaries i ≤ C.cycles i :=
+theorem boundaries_le_cycles' (C : HomologicalComplex V c) (i : ι) :
+    C.boundaries i ≤ C.cycles' i :=
   image_le_kernel _ _ (C.dTo_comp_dFrom i)
-#align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cycles
+#align homological_complex.boundaries_le_cycles HomologicalComplex.boundaries_le_cycles'
 
-/-- The canonical map from `boundaries i` to `cycles i`. -/
-abbrev boundariesToCycles (C : HomologicalComplex V c) (i : ι) :
-    (C.boundaries i : V) ⟶ (C.cycles i : V) :=
+/-- The canonical map from `boundaries i` to `cycles' i`. -/
+abbrev boundariesToCycles' (C : HomologicalComplex V c) (i : ι) :
+    (C.boundaries i : V) ⟶ (C.cycles' i : V) :=
   imageToKernel _ _ (C.dTo_comp_dFrom i)
-#align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCycles
+#align homological_complex.boundaries_to_cycles HomologicalComplex.boundariesToCycles'
 
-/-- Prefer `boundariesToCycles`. -/
+/-- Prefer `boundariesToCycles'`. -/
 @[simp 1100]
-theorem imageToKernel_as_boundariesToCycles (C : HomologicalComplex V c) (i : ι) (h) :
-    (C.boundaries i).ofLE (C.cycles i) h = C.boundariesToCycles i := rfl
-#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCycles
+theorem imageToKernel_as_boundariesToCycles' (C : HomologicalComplex V c) (i : ι) (h) :
+    (C.boundaries i).ofLE (C.cycles' i) h = C.boundariesToCycles' i := rfl
+#align homological_complex.image_to_kernel_as_boundaries_to_cycles HomologicalComplex.imageToKernel_as_boundariesToCycles'
 
 variable [HasCokernels V]
 
 /-- The homology of a complex at index `i`. -/
-abbrev homology (C : HomologicalComplex V c) (i : ι) : V :=
-  _root_.homology (C.dTo i) (C.dFrom i) (C.dTo_comp_dFrom i)
-#align homological_complex.homology HomologicalComplex.homology
+abbrev homology' (C : HomologicalComplex V c) (i : ι) : V :=
+  _root_.homology' (C.dTo i) (C.dFrom i) (C.dTo_comp_dFrom i)
+#align homological_complex.homology HomologicalComplex.homology'
 
 /-- The `j`th homology of a homological complex (as kernel of 'the differential from `Cⱼ`' modulo
 the image of 'the differential to `Cⱼ`') is isomorphic to the kernel of `d : Cⱼ → Cₖ` modulo
 the image of `d : Cᵢ → Cⱼ` when `Rel i j` and `Rel j k`. -/
-def homologyIso (C : HomologicalComplex V c) {i j k : ι} (hij : c.Rel i j) (hjk : c.Rel j k) :
-    C.homology j ≅ _root_.homology (C.d i j) (C.d j k) (C.d_comp_d i j k) :=
-  homology.mapIso _ _
+def homology'Iso (C : HomologicalComplex V c) {i j k : ι} (hij : c.Rel i j) (hjk : c.Rel j k) :
+    C.homology' j ≅ _root_.homology' (C.d i j) (C.d j k) (C.d_comp_d i j k) :=
+  homology'.mapIso _ _
     (Arrow.isoMk (C.xPrevIso hij) (Iso.refl _) <| by dsimp; rw [C.dTo_eq hij, Category.comp_id])
     (Arrow.isoMk (Iso.refl _) (C.xNextIso hjk) <| by
       dsimp
       rw [C.dFrom_comp_xNextIso hjk, Category.id_comp])
     rfl
-#align homological_complex.homology_iso HomologicalComplex.homologyIso
+#align homological_complex.homology_iso HomologicalComplex.homology'Iso
 
 end
 
 end HomologicalComplex
 
 /-- The 0th homology of a chain complex is isomorphic to the cokernel of `d : C₁ ⟶ C₀`. -/
-def ChainComplex.homologyZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
-    (C : ChainComplex V ℕ) [Epi (factorThruImage (C.d 1 0))] : C.homology 0 ≅ cokernel (C.d 1 0) :=
-  (homology.mapIso _ _
+def ChainComplex.homology'ZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
+    (C : ChainComplex V ℕ) [Epi (factorThruImage (C.d 1 0))] :
+    C.homology' 0 ≅ cokernel (C.d 1 0) :=
+  (homology'.mapIso _ _
       (Arrow.isoMk (C.xPrevIso rfl) (Iso.refl _) <| by
         rw [C.dTo_eq rfl]
         exact (Category.comp_id _).symm : Arrow.mk (C.dTo 0) ≅ Arrow.mk (C.d 1 0))
@@ -152,38 +161,38 @@ def ChainComplex.homologyZeroIso [HasKernels V] [HasImages V] [HasCokernels V]
           one_ne_zero <| by rwa [ChainComplex.next_nat_zero, Nat.zero_add] at h] :
         Arrow.mk (C.dFrom 0) ≅ Arrow.mk 0)
       rfl).trans <|
-    homologyOfZeroRight _
-#align chain_complex.homology_zero_iso ChainComplex.homologyZeroIso
+    homology'OfZeroRight _
+#align chain_complex.homology_zero_iso ChainComplex.homology'ZeroIso
 
 /-- The 0th cohomology of a cochain complex is isomorphic to the kernel of `d : C₀ → C₁`. -/
-def CochainComplex.homologyZeroIso [HasZeroObject V] [HasKernels V] [HasImages V] [HasCokernels V]
-    (C : CochainComplex V ℕ) : C.homology 0 ≅ kernel (C.d 0 1) :=
-  (homology.mapIso _ _
+def CochainComplex.homology'ZeroIso [HasZeroObject V] [HasKernels V] [HasImages V] [HasCokernels V]
+    (C : CochainComplex V ℕ) : C.homology' 0 ≅ kernel (C.d 0 1) :=
+  (homology'.mapIso _ _
       (Arrow.isoMk (C.xPrevIsoSelf (by rw [CochainComplex.prev_nat_zero]; exact one_ne_zero))
           (Iso.refl _) (by simp) : Arrow.mk (C.dTo 0) ≅ Arrow.mk 0)
       (Arrow.isoMk (Iso.refl _) (C.xNextIso rfl) (by simp) :
         Arrow.mk (C.dFrom 0) ≅ Arrow.mk (C.d 0 1)) <|
       by simp).trans <|
-    homologyOfZeroLeft _
-#align cochain_complex.homology_zero_iso CochainComplex.homologyZeroIso
+    homology'OfZeroLeft _
+#align cochain_complex.homology_zero_iso CochainComplex.homology'ZeroIso
 
 /-- The `n + 1`th homology of a chain complex (as kernel of 'the differential from `Cₙ₊₁`' modulo
 the image of 'the differential to `Cₙ₊₁`') is isomorphic to the kernel of `d : Cₙ₊₁ → Cₙ` modulo
 the image of `d : Cₙ₊₂ → Cₙ₊₁`. -/
-def ChainComplex.homologySuccIso [HasKernels V] [HasImages V] [HasCokernels V]
+def ChainComplex.homology'SuccIso [HasKernels V] [HasImages V] [HasCokernels V]
     (C : ChainComplex V ℕ) (n : ℕ) :
-    C.homology (n + 1) ≅ homology (C.d (n + 2) (n + 1)) (C.d (n + 1) n) (C.d_comp_d _ _ _) :=
-  C.homologyIso rfl rfl
-#align chain_complex.homology_succ_iso ChainComplex.homologySuccIso
+    C.homology' (n + 1) ≅ homology' (C.d (n + 2) (n + 1)) (C.d (n + 1) n) (C.d_comp_d _ _ _) :=
+  C.homology'Iso rfl rfl
+#align chain_complex.homology_succ_iso ChainComplex.homology'SuccIso
 
 /-- The `n + 1`th cohomology of a cochain complex (as kernel of 'the differential from `Cₙ₊₁`'
 modulo the image of 'the differential to `Cₙ₊₁`') is isomorphic to the kernel of `d : Cₙ₊₁ → Cₙ₊₂`
 modulo the image of `d : Cₙ → Cₙ₊₁`. -/
-def CochainComplex.homologySuccIso [HasKernels V] [HasImages V] [HasCokernels V]
+def CochainComplex.homology'SuccIso [HasKernels V] [HasImages V] [HasCokernels V]
     (C : CochainComplex V ℕ) (n : ℕ) :
-    C.homology (n + 1) ≅ homology (C.d n (n + 1)) (C.d (n + 1) (n + 2)) (C.d_comp_d _ _ _) :=
-  C.homologyIso rfl rfl
-#align cochain_complex.homology_succ_iso CochainComplex.homologySuccIso
+    C.homology' (n + 1) ≅ homology' (C.d n (n + 1)) (C.d (n + 1) (n + 2)) (C.d_comp_d _ _ _) :=
+  C.homology'Iso rfl rfl
+#align cochain_complex.homology_succ_iso CochainComplex.homology'SuccIso
 
 open HomologicalComplex
 
@@ -197,40 +206,40 @@ variable [HasKernels V]
 variable {C₁ C₂ C₃ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
 /-- The morphism between cycles induced by a chain map. -/
-abbrev cyclesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles i : V) ⟶ (C₂.cycles i : V) :=
-  Subobject.factorThru _ ((C₁.cycles i).arrow ≫ f.f i) (kernelSubobject_factors _ _ (by simp))
-#align cycles_map cyclesMap
+abbrev cycles'Map (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles' i : V) ⟶ (C₂.cycles' i : V) :=
+  Subobject.factorThru _ ((C₁.cycles' i).arrow ≫ f.f i) (kernelSubobject_factors _ _ (by simp))
+#align cycles_map cycles'Map
 
 -- Porting note: Originally `@[simp, reassoc.1, elementwise]`
 @[reassoc, elementwise] -- @[simp] -- Porting note: simp can prove this
-theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
-    cyclesMap f i ≫ (C₂.cycles i).arrow = (C₁.cycles i).arrow ≫ f.f i := by simp
-#align cycles_map_arrow cyclesMap_arrow
+theorem cycles'Map_arrow (f : C₁ ⟶ C₂) (i : ι) :
+    cycles'Map f i ≫ (C₂.cycles' i).arrow = (C₁.cycles' i).arrow ≫ f.f i := by simp
+#align cycles_map_arrow cycles'Map_arrow
 
-attribute [simp 1100] cyclesMap_arrow_assoc
-attribute [simp] cyclesMap_arrow_apply
+attribute [simp 1100] cycles'Map_arrow_assoc
+attribute [simp] cycles'Map_arrow_apply
 
 @[simp]
-theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ := by
-  dsimp only [cyclesMap]
+theorem cycles'Map_id (i : ι) : cycles'Map (𝟙 C₁) i = 𝟙 _ := by
+  dsimp only [cycles'Map]
   simp
-#align cycles_map_id cyclesMap_id
+#align cycles_map_id cycles'Map_id
 
 @[simp]
-theorem cyclesMap_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
-    cyclesMap (f ≫ g) i = cyclesMap f i ≫ cyclesMap g i := by
-  dsimp only [cyclesMap]
+theorem cycles'Map_comp (f : C₁ ⟶ C₂) (g : C₂ ⟶ C₃) (i : ι) :
+    cycles'Map (f ≫ g) i = cycles'Map f i ≫ cycles'Map g i := by
+  dsimp only [cycles'Map]
   simp [Subobject.factorThru_right]
-#align cycles_map_comp cyclesMap_comp
+#align cycles_map_comp cycles'Map_comp
 
 variable (V c)
 
 /-- Cycles as a functor. -/
 @[simps]
-def cyclesFunctor (i : ι) : HomologicalComplex V c ⥤ V where
-  obj C := C.cycles i
-  map {C₁ C₂} f := cyclesMap f i
-#align cycles_functor cyclesFunctor
+def cycles'Functor (i : ι) : HomologicalComplex V c ⥤ V where
+  obj C := C.cycles' i
+  map {C₁ C₂} f := cycles'Map f i
+#align cycles_functor cycles'Functor
 
 end
 
@@ -270,58 +279,59 @@ variable {C₁ C₂ : HomologicalComplex V c} (f : C₁ ⟶ C₂)
 
 -- Porting note: Originally `@[simp, reassoc.1]`
 @[reassoc (attr := simp)]
-theorem boundariesToCycles_naturality (i : ι) :
-    boundariesMap f i ≫ C₂.boundariesToCycles i = C₁.boundariesToCycles i ≫ cyclesMap f i := by
+theorem boundariesToCycles'_naturality (i : ι) :
+    boundariesMap f i ≫ C₂.boundariesToCycles' i =
+      C₁.boundariesToCycles' i ≫ cycles'Map f i := by
   ext
   simp
-#align boundaries_to_cycles_naturality boundariesToCycles_naturality
+#align boundaries_to_cycles_naturality boundariesToCycles'_naturality
 
 variable (V c)
 
 /-- The natural transformation from the boundaries functor to the cycles functor. -/
 @[simps]
-def boundariesToCyclesNatTrans (i : ι) : boundariesFunctor V c i ⟶ cyclesFunctor V c i where
-  app C := C.boundariesToCycles i
-  naturality _ _ f := boundariesToCycles_naturality f i
-#align boundaries_to_cycles_nat_trans boundariesToCyclesNatTrans
+def boundariesToCycles'NatTrans (i : ι) : boundariesFunctor V c i ⟶ cycles'Functor V c i where
+  app C := C.boundariesToCycles' i
+  naturality _ _ f := boundariesToCycles'_naturality f i
+#align boundaries_to_cycles_nat_trans boundariesToCycles'NatTrans
 
 /-- The `i`-th homology, as a functor to `V`. -/
 @[simps]
-def homologyFunctor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V where
+def homology'Functor [HasCokernels V] (i : ι) : HomologicalComplex V c ⥤ V where
   -- It would be nice if we could just write
   -- `cokernel (boundariesToCyclesNatTrans V c i)`
   -- here, but universe implementation details get in the way...
-  obj C := C.homology i
-  map {C₁ C₂} f := homology.map _ _ (f.sqTo i) (f.sqFrom i) rfl
+  obj C := C.homology' i
+  map {C₁ C₂} f := homology'.map _ _ (f.sqTo i) (f.sqFrom i) rfl
   map_id _ := by
     simp only
     ext1
-    simp only [homology.π_map, kernelSubobjectMap_id, Hom.sqFrom_id, Category.id_comp,
+    simp only [homology'.π_map, kernelSubobjectMap_id, Hom.sqFrom_id, Category.id_comp,
       Category.comp_id]
   map_comp _ _ := by
     simp only
     ext1
-    simp only [Hom.sqFrom_comp, kernelSubobjectMap_comp, homology.π_map_assoc, homology.π_map,
+    simp only [Hom.sqFrom_comp, kernelSubobjectMap_comp, homology'.π_map_assoc, homology'.π_map,
       Category.assoc]
-#align homology_functor homologyFunctor
+#align homology_functor homology'Functor
 
 /-- The homology functor from `ι`-indexed complexes to `ι`-graded objects in `V`. -/
 @[simps]
-def gradedHomologyFunctor [HasCokernels V] : HomologicalComplex V c ⥤ GradedObject ι V where
-  obj C i := C.homology i
-  map {C C'} f i := (homologyFunctor V c i).map f
+def gradedHomology'Functor [HasCokernels V] : HomologicalComplex V c ⥤ GradedObject ι V where
+  obj C i := C.homology' i
+  map {C C'} f i := (homology'Functor V c i).map f
   map_id _ := by
     ext
     simp only [GradedObject.categoryOfGradedObjects_id]
     ext
-    simp only [homology.π_map, homologyFunctor_map, kernelSubobjectMap_id, Hom.sqFrom_id,
+    simp only [homology'.π_map, homology'Functor_map, kernelSubobjectMap_id, Hom.sqFrom_id,
       Category.id_comp, Category.comp_id]
   map_comp _ _ := by
     ext
     simp only [GradedObject.categoryOfGradedObjects_comp]
     ext
-    simp only [Hom.sqFrom_comp, kernelSubobjectMap_comp, homology.π_map_assoc, homology.π_map,
-      homologyFunctor_map, Category.assoc]
-#align graded_homology_functor gradedHomologyFunctor
+    simp only [Hom.sqFrom_comp, kernelSubobjectMap_comp, homology'.π_map_assoc, homology'.π_map,
+      homology'Functor_map, Category.assoc]
+#align graded_homology_functor gradedHomology'Functor
 
 end
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -27,7 +27,7 @@ universe v u
 
 open CategoryTheory CategoryTheory.Limits
 
-variable {ι : Type _}
+variable {ι : Type*}
 
 variable {V : Type u} [Category.{v} V] [HasZeroMorphisms V]
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.homology.homology
-! leanprover-community/mathlib commit 618ea3d5c99240cd7000d8376924906a148bf9ff
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Homology.ImageToKernel
 import Mathlib.Algebra.Homology.HomologicalComplex
 import Mathlib.CategoryTheory.GradedObject
 
+#align_import algebra.homology.homology from "leanprover-community/mathlib"@"618ea3d5c99240cd7000d8376924906a148bf9ff"
+
 /-!
 # The homology of a complex
 
chore: bump to nightly-2023-07-01 (#5409)

Open in Gitpod

Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -205,11 +205,14 @@ abbrev cyclesMap (f : C₁ ⟶ C₂) (i : ι) : (C₁.cycles i : V) ⟶ (C₂.cy
 #align cycles_map cyclesMap
 
 -- Porting note: Originally `@[simp, reassoc.1, elementwise]`
-@[reassoc (attr := simp 1100), elementwise (attr := simp)]
+@[reassoc, elementwise] -- @[simp] -- Porting note: simp can prove this
 theorem cyclesMap_arrow (f : C₁ ⟶ C₂) (i : ι) :
     cyclesMap f i ≫ (C₂.cycles i).arrow = (C₁.cycles i).arrow ≫ f.f i := by simp
 #align cycles_map_arrow cyclesMap_arrow
 
+attribute [simp 1100] cyclesMap_arrow_assoc
+attribute [simp] cyclesMap_arrow_apply
+
 @[simp]
 theorem cyclesMap_id (i : ι) : cyclesMap (𝟙 C₁) i = 𝟙 _ := by
   dsimp only [cyclesMap]
feat: port Algebra.Homology.Homology (#3491)

Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>

Dependencies 3 + 300

301 files ported (99.0%)
120978 lines ported (99.1%)
Show graph

The unported dependencies are