category_theory.triangulated.triangulatedMathlib.CategoryTheory.Triangulated.Triangulated

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
 -/
-import Mathbin.CategoryTheory.Triangulated.Pretriangulated
+import CategoryTheory.Triangulated.Pretriangulated
 
 #align_import category_theory.triangulated.triangulated from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
-
-! This file was ported from Lean 3 source module category_theory.triangulated.triangulated
-! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Triangulated.Pretriangulated
 
+#align_import category_theory.triangulated.triangulated from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
+
 /-!
 # Triangulated Categories
 
Diff
@@ -41,8 +41,7 @@ variable {X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ : C} {u₁₂ : X₁ ⟶ X₂}
 
 namespace Triangulated
 
-include comm h₁₂ h₂₃ h₁₃
-
+#print CategoryTheory.Triangulated.Octahedron /-
 /-- An octahedron is a type of datum whose existence is asserted by
 the octahedron axiom (TR 4), see https://stacks.math.columbia.edu/tag/05QK -/
 structure Octahedron where
@@ -54,8 +53,7 @@ structure Octahedron where
   comm₄ : w₁₃ ≫ u₁₂⟦1⟧' = m₃ ≫ w₂₃
   Mem : Triangle.mk m₁ m₃ (w₂₃ ≫ v₁₂⟦1⟧') ∈ (dist_triang C)
 #align category_theory.triangulated.octahedron CategoryTheory.Triangulated.Octahedron
-
-omit comm h₁₂ h₂₃ h₁₃
+-/
 
 instance (X : C) :
     Nonempty
@@ -71,12 +69,15 @@ attribute [reassoc] comm₁ comm₂ comm₃ comm₄
 
 variable {comm h₁₂ h₂₃ h₁₃} (h : Octahedron comm h₁₂ h₂₃ h₁₃)
 
+#print CategoryTheory.Triangulated.Octahedron.triangle /-
 /-- The triangle `Z₁₂ ⟶ Z₁₃ ⟶ Z₂₃ ⟶ Z₁₂⟦1⟧` given by an octahedron. -/
 @[simps]
 def triangle : Triangle C :=
   Triangle.mk h.m₁ h.m₃ (w₂₃ ≫ v₁₂⟦1⟧')
 #align category_theory.triangulated.octahedron.triangle CategoryTheory.Triangulated.Octahedron.triangle
+-/
 
+#print CategoryTheory.Triangulated.Octahedron.triangleMorphism₁ /-
 /-- The first morphism of triangles given by an octahedron. -/
 @[simps]
 def triangleMorphism₁ : Triangle.mk u₁₂ v₁₂ w₁₂ ⟶ Triangle.mk u₁₃ v₁₃ w₁₃
@@ -88,7 +89,9 @@ def triangleMorphism₁ : Triangle.mk u₁₂ v₁₂ w₁₂ ⟶ Triangle.mk u
   comm₂' := h.comm₁
   comm₃' := by dsimp; simpa only [Functor.map_id, comp_id] using h.comm₂.symm
 #align category_theory.triangulated.octahedron.triangle_morphism₁ CategoryTheory.Triangulated.Octahedron.triangleMorphism₁
+-/
 
+#print CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ /-
 /-- The second morphism of triangles given an octahedron. -/
 @[simps]
 def triangleMorphism₂ : Triangle.mk u₁₃ v₁₃ w₁₃ ⟶ Triangle.mk u₂₃ v₂₃ w₂₃
@@ -100,6 +103,7 @@ def triangleMorphism₂ : Triangle.mk u₁₃ v₁₃ w₁₃ ⟶ Triangle.mk u
   comm₂' := by dsimp; rw [id_comp, h.comm₃]
   comm₃' := h.comm₄
 #align category_theory.triangulated.octahedron.triangle_morphism₂ CategoryTheory.Triangulated.Octahedron.triangleMorphism₂
+-/
 
 /- TODO (@joelriou): show that in order to verify the existence of an octahedron, one may
 replace the composable maps `u₁₂` and `u₂₃` by any isomorphic composable maps
@@ -112,6 +116,7 @@ open Triangulated
 
 variable (C)
 
+#print CategoryTheory.IsTriangulated /-
 /-- A triangulated category is a pretriangulated category which satisfies
 the octahedron axiom (TR 4), see https://stacks.math.columbia.edu/tag/05QK -/
 class IsTriangulated where
@@ -122,15 +127,18 @@ class IsTriangulated where
       (h₂₃ : Triangle.mk u₂₃ v₂₃ w₂₃ ∈ (dist_triang C)) ⦃v₁₃ : X₃ ⟶ Z₁₃⦄ ⦃w₁₃ : Z₁₃ ⟶ X₁⟦1⟧⦄
       (h₁₃ : Triangle.mk u₁₃ v₁₃ w₁₃ ∈ (dist_triang C)), Nonempty (Octahedron comm h₁₂ h₂₃ h₁₃)
 #align category_theory.is_triangulated CategoryTheory.IsTriangulated
+-/
 
 namespace Triangulated
 
 variable {C}
 
+#print CategoryTheory.Triangulated.someOctahedron /-
 /-- A choice of octahedron given by the octahedron axiom. -/
 def someOctahedron [IsTriangulated C] : Octahedron comm h₁₂ h₂₃ h₁₃ :=
   (IsTriangulated.octahedron_axiom comm h₁₂ h₂₃ h₁₃).some
 #align category_theory.triangulated.some_octahedron CategoryTheory.Triangulated.someOctahedron
+-/
 
 end Triangulated
 
Diff
@@ -28,7 +28,7 @@ namespace CategoryTheory
 
 open Limits Category Preadditive Pretriangulated
 
-open ZeroObject
+open scoped ZeroObject
 
 variable {C : Type _} [Category C] [Preadditive C] [HasZeroObject C] [HasShift C ℤ]
   [∀ n : ℤ, Functor.Additive (shiftFunctor C n)] [Pretriangulated C]
Diff
@@ -43,9 +43,6 @@ namespace Triangulated
 
 include comm h₁₂ h₂₃ h₁₃
 
-/- warning: category_theory.triangulated.octahedron -> CategoryTheory.Triangulated.Octahedron is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron CategoryTheory.Triangulated.Octahedronₓ'. -/
 /-- An octahedron is a type of datum whose existence is asserted by
 the octahedron axiom (TR 4), see https://stacks.math.columbia.edu/tag/05QK -/
 structure Octahedron where
@@ -74,18 +71,12 @@ attribute [reassoc] comm₁ comm₂ comm₃ comm₄
 
 variable {comm h₁₂ h₂₃ h₁₃} (h : Octahedron comm h₁₂ h₂₃ h₁₃)
 
-/- warning: category_theory.triangulated.octahedron.triangle -> CategoryTheory.Triangulated.Octahedron.triangle is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle CategoryTheory.Triangulated.Octahedron.triangleₓ'. -/
 /-- The triangle `Z₁₂ ⟶ Z₁₃ ⟶ Z₂₃ ⟶ Z₁₂⟦1⟧` given by an octahedron. -/
 @[simps]
 def triangle : Triangle C :=
   Triangle.mk h.m₁ h.m₃ (w₂₃ ≫ v₁₂⟦1⟧')
 #align category_theory.triangulated.octahedron.triangle CategoryTheory.Triangulated.Octahedron.triangle
 
-/- warning: category_theory.triangulated.octahedron.triangle_morphism₁ -> CategoryTheory.Triangulated.Octahedron.triangleMorphism₁ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle_morphism₁ CategoryTheory.Triangulated.Octahedron.triangleMorphism₁ₓ'. -/
 /-- The first morphism of triangles given by an octahedron. -/
 @[simps]
 def triangleMorphism₁ : Triangle.mk u₁₂ v₁₂ w₁₂ ⟶ Triangle.mk u₁₃ v₁₃ w₁₃
@@ -98,9 +89,6 @@ def triangleMorphism₁ : Triangle.mk u₁₂ v₁₂ w₁₂ ⟶ Triangle.mk u
   comm₃' := by dsimp; simpa only [Functor.map_id, comp_id] using h.comm₂.symm
 #align category_theory.triangulated.octahedron.triangle_morphism₁ CategoryTheory.Triangulated.Octahedron.triangleMorphism₁
 
-/- warning: category_theory.triangulated.octahedron.triangle_morphism₂ -> CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle_morphism₂ CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ₓ'. -/
 /-- The second morphism of triangles given an octahedron. -/
 @[simps]
 def triangleMorphism₂ : Triangle.mk u₁₃ v₁₃ w₁₃ ⟶ Triangle.mk u₂₃ v₂₃ w₂₃
@@ -124,12 +112,6 @@ open Triangulated
 
 variable (C)
 
-/- warning: category_theory.is_triangulated -> CategoryTheory.IsTriangulated is a dubious translation:
-lean 3 declaration is
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n)], Type
-but is expected to have type
-  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2], Type
-Case conversion may be inaccurate. Consider using '#align category_theory.is_triangulated CategoryTheory.IsTriangulatedₓ'. -/
 /-- A triangulated category is a pretriangulated category which satisfies
 the octahedron axiom (TR 4), see https://stacks.math.columbia.edu/tag/05QK -/
 class IsTriangulated where
@@ -145,9 +127,6 @@ namespace Triangulated
 
 variable {C}
 
-/- warning: category_theory.triangulated.some_octahedron -> CategoryTheory.Triangulated.someOctahedron is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.some_octahedron CategoryTheory.Triangulated.someOctahedronₓ'. -/
 /-- A choice of octahedron given by the octahedron axiom. -/
 def someOctahedron [IsTriangulated C] : Octahedron comm h₁₂ h₂₃ h₁₃ :=
   (IsTriangulated.octahedron_axiom comm h₁₂ h₂₃ h₁₃).some
Diff
@@ -93,13 +93,9 @@ def triangleMorphism₁ : Triangle.mk u₁₂ v₁₂ w₁₂ ⟶ Triangle.mk u
   hom₁ := 𝟙 X₁
   hom₂ := u₂₃
   hom₃ := h.m₁
-  comm₁' := by
-    dsimp
-    rw [id_comp, comm]
+  comm₁' := by dsimp; rw [id_comp, comm]
   comm₂' := h.comm₁
-  comm₃' := by
-    dsimp
-    simpa only [Functor.map_id, comp_id] using h.comm₂.symm
+  comm₃' := by dsimp; simpa only [Functor.map_id, comp_id] using h.comm₂.symm
 #align category_theory.triangulated.octahedron.triangle_morphism₁ CategoryTheory.Triangulated.Octahedron.triangleMorphism₁
 
 /- warning: category_theory.triangulated.octahedron.triangle_morphism₂ -> CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ is a dubious translation:
@@ -112,12 +108,8 @@ def triangleMorphism₂ : Triangle.mk u₁₃ v₁₃ w₁₃ ⟶ Triangle.mk u
   hom₁ := u₁₂
   hom₂ := 𝟙 X₃
   hom₃ := h.m₃
-  comm₁' := by
-    dsimp
-    rw [comp_id, comm]
-  comm₂' := by
-    dsimp
-    rw [id_comp, h.comm₃]
+  comm₁' := by dsimp; rw [comp_id, comm]
+  comm₂' := by dsimp; rw [id_comp, h.comm₃]
   comm₃' := h.comm₄
 #align category_theory.triangulated.octahedron.triangle_morphism₂ CategoryTheory.Triangulated.Octahedron.triangleMorphism₂
 
Diff
@@ -44,10 +44,7 @@ namespace Triangulated
 include comm h₁₂ h₂₃ h₁₃
 
 /- warning: category_theory.triangulated.octahedron -> CategoryTheory.Triangulated.Octahedron is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃}, (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃) -> (forall {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)}, (Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n) _inst_6)) -> (forall {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)}, (Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n) _inst_6)) -> (forall {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)}, (Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n) _inst_6)) -> Type.{u2})))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] {_inst_6 : C} {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₁} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂}, (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) _inst_6 X₁ X₂ Z₁₃ u₁₂) u₂₃) -> (forall {comm : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)}, (Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) -> (forall {h₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)}, (Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) -> (forall {h₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₂₃} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)}, (Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) -> Type.{u2})))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron CategoryTheory.Triangulated.Octahedronₓ'. -/
 /-- An octahedron is a type of datum whose existence is asserted by
 the octahedron axiom (TR 4), see https://stacks.math.columbia.edu/tag/05QK -/
@@ -78,10 +75,7 @@ attribute [reassoc] comm₁ comm₂ comm₃ comm₄
 variable {comm h₁₂ h₂₃ h₁₃} (h : Octahedron comm h₁₂ h₂₃ h₁₃)
 
 /- warning: category_theory.triangulated.octahedron.triangle -> CategoryTheory.Triangulated.Octahedron.triangle is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangle._proof_1.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₂ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangle._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)} {h₂₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangle._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangle._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.Octahedron.triangle._proof_3.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃) -> (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] {_inst_6 : C} {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₁} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂} (u₁₃ : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) _inst_6 X₁ X₂ Z₁₃ u₁₂) u₂₃) {comm : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₂ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} {w₂₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₂₃} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃) -> (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle CategoryTheory.Triangulated.Octahedron.triangleₓ'. -/
 /-- The triangle `Z₁₂ ⟶ Z₁₃ ⟶ Z₂₃ ⟶ Z₁₂⟦1⟧` given by an octahedron. -/
 @[simps]
@@ -90,10 +84,7 @@ def triangle : Triangle C :=
 #align category_theory.triangulated.octahedron.triangle CategoryTheory.Triangulated.Octahedron.triangle
 
 /- warning: category_theory.triangulated.octahedron.triangle_morphism₁ -> CategoryTheory.Triangulated.Octahedron.triangleMorphism₁ is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_1.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₂ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)} {h₂₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_3.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃) -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Pretriangulated.triangleCategory.{u2, u1} C _inst_1 _inst_4))) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] {_inst_6 : C} {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₁} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂} (u₁₃ : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) _inst_6 X₁ X₂ Z₁₃ u₁₂) u₂₃) {comm : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₂ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} {w₂₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₂₃} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃) -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Pretriangulated.triangleCategory.{u2, u1} C _inst_1 _inst_4))) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle_morphism₁ CategoryTheory.Triangulated.Octahedron.triangleMorphism₁ₓ'. -/
 /-- The first morphism of triangles given by an octahedron. -/
 @[simps]
@@ -112,10 +103,7 @@ def triangleMorphism₁ : Triangle.mk u₁₂ v₁₂ w₁₂ ⟶ Triangle.mk u
 #align category_theory.triangulated.octahedron.triangle_morphism₁ CategoryTheory.Triangulated.Octahedron.triangleMorphism₁
 
 /- warning: category_theory.triangulated.octahedron.triangle_morphism₂ -> CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_1.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₂ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)} {h₂₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_3.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃) -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Pretriangulated.triangleCategory.{u2, u1} C _inst_1 _inst_4))) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃))
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] {_inst_6 : C} {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₁} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂} (u₁₃ : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) _inst_6 X₁ X₂ Z₁₃ u₁₂) u₂₃) {comm : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₂ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} {w₂₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₂₃} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃) -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Pretriangulated.triangleCategory.{u2, u1} C _inst_1 _inst_4))) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle_morphism₂ CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ₓ'. -/
 /-- The second morphism of triangles given an octahedron. -/
 @[simps]
@@ -166,10 +154,7 @@ namespace Triangulated
 variable {C}
 
 /- warning: category_theory.triangulated.some_octahedron -> CategoryTheory.Triangulated.someOctahedron is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.someOctahedron._proof_1.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} (comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃) {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} (h₁₂ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.someOctahedron._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)) {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)} (h₂₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.someOctahedron._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)) {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} (h₁₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.someOctahedron._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)) [_inst_7 : CategoryTheory.IsTriangulated.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.someOctahedron._proof_3.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6], CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.someOctahedron._proof_4.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃
-but is expected to have type
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] [_inst_6 : CategoryTheory.IsTriangulated.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} (comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃) {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} (h₁₂ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₂)} (h₂₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} (h₁₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)), CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.some_octahedron CategoryTheory.Triangulated.someOctahedronₓ'. -/
 /-- A choice of octahedron given by the octahedron axiom. -/
 def someOctahedron [IsTriangulated C] : Octahedron comm h₁₂ h₂₃ h₁₃ :=
Diff
@@ -73,7 +73,7 @@ instance (X : C) :
 
 namespace Octahedron
 
-attribute [reassoc.1] comm₁ comm₂ comm₃ comm₄
+attribute [reassoc] comm₁ comm₂ comm₃ comm₄
 
 variable {comm h₁₂ h₂₃ h₁₃} (h : Octahedron comm h₁₂ h₂₃ h₁₃)
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
 
 ! This file was ported from Lean 3 source module category_theory.triangulated.triangulated
-! leanprover-community/mathlib commit 19786714ebe478f40b503acb4705fb058ba47303
+! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.CategoryTheory.Triangulated.Pretriangulated
 /-!
 # Triangulated Categories
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file contains the definition of triangulated categories, which are
 pretriangulated categories which satisfy the octahedron axiom.
 
Diff
@@ -40,6 +40,12 @@ namespace Triangulated
 
 include comm h₁₂ h₂₃ h₁₃
 
+/- warning: category_theory.triangulated.octahedron -> CategoryTheory.Triangulated.Octahedron is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃}, (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃) -> (forall {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)}, (Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n) _inst_6)) -> (forall {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)}, (Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n) _inst_6)) -> (forall {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)}, (Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n) _inst_6)) -> Type.{u2})))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] {_inst_6 : C} {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₁} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂}, (Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) _inst_6 X₁ X₂ Z₁₃ u₁₂) u₂₃) -> (forall {comm : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)}, (Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) -> (forall {h₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)}, (Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) -> (forall {h₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₂₃} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)}, (Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) -> Type.{u2})))
+Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron CategoryTheory.Triangulated.Octahedronₓ'. -/
 /-- An octahedron is a type of datum whose existence is asserted by
 the octahedron axiom (TR 4), see https://stacks.math.columbia.edu/tag/05QK -/
 structure Octahedron where
@@ -68,12 +74,24 @@ attribute [reassoc.1] comm₁ comm₂ comm₃ comm₄
 
 variable {comm h₁₂ h₂₃ h₁₃} (h : Octahedron comm h₁₂ h₂₃ h₁₃)
 
+/- warning: category_theory.triangulated.octahedron.triangle -> CategoryTheory.Triangulated.Octahedron.triangle is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangle._proof_1.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₂ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangle._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)} {h₂₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangle._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangle._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.Octahedron.triangle._proof_3.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃) -> (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] {_inst_6 : C} {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₁} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂} (u₁₃ : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) _inst_6 X₁ X₂ Z₁₃ u₁₂) u₂₃) {comm : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₂ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} {w₂₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₂₃} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃) -> (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)
+Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle CategoryTheory.Triangulated.Octahedron.triangleₓ'. -/
 /-- The triangle `Z₁₂ ⟶ Z₁₃ ⟶ Z₂₃ ⟶ Z₁₂⟦1⟧` given by an octahedron. -/
 @[simps]
 def triangle : Triangle C :=
   Triangle.mk h.m₁ h.m₃ (w₂₃ ≫ v₁₂⟦1⟧')
 #align category_theory.triangulated.octahedron.triangle CategoryTheory.Triangulated.Octahedron.triangle
 
+/- warning: category_theory.triangulated.octahedron.triangle_morphism₁ -> CategoryTheory.Triangulated.Octahedron.triangleMorphism₁ is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_1.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₂ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)} {h₂₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₁._proof_3.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃) -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Pretriangulated.triangleCategory.{u2, u1} C _inst_1 _inst_4))) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] {_inst_6 : C} {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₁} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂} (u₁₃ : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) _inst_6 X₁ X₂ Z₁₃ u₁₂) u₂₃) {comm : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₂ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} {w₂₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₂₃} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃) -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Pretriangulated.triangleCategory.{u2, u1} C _inst_1 _inst_4))) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃))
+Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle_morphism₁ CategoryTheory.Triangulated.Octahedron.triangleMorphism₁ₓ'. -/
 /-- The first morphism of triangles given by an octahedron. -/
 @[simps]
 def triangleMorphism₁ : Triangle.mk u₁₂ v₁₂ w₁₂ ⟶ Triangle.mk u₁₃ v₁₃ w₁₃
@@ -90,6 +108,12 @@ def triangleMorphism₁ : Triangle.mk u₁₂ v₁₂ w₁₂ ⟶ Triangle.mk u
     simpa only [Functor.map_id, comp_id] using h.comm₂.symm
 #align category_theory.triangulated.octahedron.triangle_morphism₁ CategoryTheory.Triangulated.Octahedron.triangleMorphism₁
 
+/- warning: category_theory.triangulated.octahedron.triangle_morphism₂ -> CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_1.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₂ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)} {h₂₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} {h₁₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.Octahedron.triangleMorphism₂._proof_3.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃) -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Pretriangulated.triangleCategory.{u2, u1} C _inst_1 _inst_4))) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃))
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] {_inst_6 : C} {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₁} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂} (u₁₃ : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) _inst_6 X₂) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) _inst_6 X₁ X₂ Z₁₃ u₁₂) u₂₃) {comm : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₂ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₁ X₃ Z₁₃ comm v₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} {w₂₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)} {h₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₂₃} {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) _inst_6)} {w₁₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)}, (CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃) -> (Quiver.Hom.{succ u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (CategoryTheory.Pretriangulated.triangleCategory.{u2, u1} C _inst_1 _inst_4))) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 _inst_6 X₂ Z₂₃ u₂₃ h₂₃ v₁₃) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ h₁₂ v₂₃))
+Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.octahedron.triangle_morphism₂ CategoryTheory.Triangulated.Octahedron.triangleMorphism₂ₓ'. -/
 /-- The second morphism of triangles given an octahedron. -/
 @[simps]
 def triangleMorphism₂ : Triangle.mk u₁₃ v₁₃ w₁₃ ⟶ Triangle.mk u₂₃ v₂₃ w₂₃
@@ -117,6 +141,12 @@ open Triangulated
 
 variable (C)
 
+/- warning: category_theory.is_triangulated -> CategoryTheory.IsTriangulated is a dubious translation:
+lean 3 declaration is
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (fun (n : Int) => _inst_5 n)], Type
+but is expected to have type
+  forall (C : Type.{u1}) [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2], Type
+Case conversion may be inaccurate. Consider using '#align category_theory.is_triangulated CategoryTheory.IsTriangulatedₓ'. -/
 /-- A triangulated category is a pretriangulated category which satisfies
 the octahedron axiom (TR 4), see https://stacks.math.columbia.edu/tag/05QK -/
 class IsTriangulated where
@@ -132,6 +162,12 @@ namespace Triangulated
 
 variable {C}
 
+/- warning: category_theory.triangulated.some_octahedron -> CategoryTheory.Triangulated.someOctahedron is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.addMonoid] [_inst_5 : forall (n : Int), CategoryTheory.Functor.Additive.{u1, u1, u2, u2} C C _inst_1 _inst_1 _inst_2 _inst_2 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 n)] [_inst_6 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.someOctahedron._proof_1.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5)] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} (comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃) {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} (h₁₂ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.someOctahedron._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)) {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₂)} (h₂₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.someOctahedron._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)) {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (CategoryTheory.Functor.obj.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.addMonoid _inst_4 (OfNat.ofNat.{0} Int 1 (OfNat.mk.{0} Int 1 (One.one.{0} Int Int.hasOne)))) X₁)} (h₁₃ : Membership.Mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.hasMem.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 (CategoryTheory.Triangulated.someOctahedron._proof_2.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6)) [_inst_7 : CategoryTheory.IsTriangulated.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.someOctahedron._proof_3.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6], CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 (CategoryTheory.Triangulated.someOctahedron._proof_4.{u1, u2} C _inst_1 _inst_2 _inst_4 _inst_5) _inst_6 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃
+but is expected to have type
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Preadditive.{u2, u1} C _inst_1] [_inst_3 : CategoryTheory.Limits.HasZeroObject.{u2, u1} C _inst_1] [_inst_4 : CategoryTheory.HasShift.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt] [_inst_5 : CategoryTheory.Pretriangulated.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2] [_inst_6 : CategoryTheory.IsTriangulated.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5] {X₁ : C} {X₂ : C} {X₃ : C} {Z₁₂ : C} {Z₂₃ : C} {Z₁₃ : C} {u₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₂} {u₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ X₃} {u₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃} (comm : Eq.{succ u2} (Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₁ X₃) (CategoryTheory.CategoryStruct.comp.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1) X₁ X₂ X₃ u₁₂ u₂₃) u₁₃) {v₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₂ Z₁₂} {w₁₂ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₂ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} (h₁₂ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₂ Z₁₂ u₁₂ v₁₂ w₁₂) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) {v₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₂₃} {w₂₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₂₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₂)} (h₂₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₂ X₃ Z₂₃ u₂₃ v₂₃ w₂₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)) {v₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X₃ Z₁₃} {w₁₃ : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) Z₁₃ (Prefunctor.obj.{succ u2, succ u2, u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u1, u1} C _inst_1 C _inst_1 (CategoryTheory.shiftFunctor.{u2, u1, 0} C Int _inst_1 Int.instAddMonoidInt _inst_4 (OfNat.ofNat.{0} Int 1 (instOfNatInt 1)))) X₁)} (h₁₃ : Membership.mem.{max u1 u2, max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4) (Set.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (Set.instMembershipSet.{max u1 u2} (CategoryTheory.Pretriangulated.Triangle.{u2, u1} C _inst_1 _inst_4)) (CategoryTheory.Pretriangulated.Triangle.mk.{u2, u1} C _inst_1 _inst_4 X₁ X₃ Z₁₃ u₁₃ v₁₃ w₁₃) (CategoryTheory.Pretriangulated.distinguishedTriangles.{u2, u1} C _inst_1 _inst_3 _inst_4 _inst_2 _inst_5)), CategoryTheory.Triangulated.Octahedron.{u1, u2} C _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ u₁₂ u₂₃ u₁₃ comm v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃
+Case conversion may be inaccurate. Consider using '#align category_theory.triangulated.some_octahedron CategoryTheory.Triangulated.someOctahedronₓ'. -/
 /-- A choice of octahedron given by the octahedron axiom. -/
 def someOctahedron [IsTriangulated C] : Octahedron comm h₁₂ h₂₃ h₁₃ :=
   (IsTriangulated.octahedron_axiom comm h₁₂ h₂₃ h₁₃).some

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
@@ -182,7 +182,6 @@ class IsTriangulated : Prop where
 namespace Triangulated
 
 variable {C}
-
 variable {X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ : C}
   {u₁₂ : X₁ ⟶ X₂} {u₂₃ : X₂ ⟶ X₃} {u₁₃ : X₁ ⟶ X₃} (comm : u₁₂ ≫ u₂₃ = u₁₃)
   {v₁₂ : X₂ ⟶ Z₁₂} {w₁₂ : Z₁₂ ⟶ X₁⟦(1 : ℤ)⟧} {h₁₂ : Triangle.mk u₁₂ v₁₂ w₁₂ ∈ distTriang C}
chore: prepare Lean version bump with explicit simp (#10999)

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

Diff
@@ -136,7 +136,7 @@ def ofIso {X₁' X₂' X₃' Z₁₂' Z₂₃' Z₁₃' : C} (u₁₂' : X₁' 
   have rel₁₃ := H.triangleMorphism₁.comm₃
   have rel₂₂ := H.triangleMorphism₂.comm₂
   have rel₂₃ := H.triangleMorphism₂.comm₃
-  dsimp at eq₁₂ eq₁₂' eq₁₃ eq₁₃' eq₂₃ eq₂₃' rel₁₂ rel₁₃ rel₂₂ rel₂₃
+  dsimp [iso₁₂, iso₂₃, iso₁₃] at eq₁₂ eq₁₂' eq₁₃ eq₁₃' eq₂₃ eq₂₃' rel₁₂ rel₁₃ rel₂₂ rel₂₃
   rw [Functor.map_id, comp_id] at rel₁₃
   rw [id_comp] at rel₂₂
   refine' ⟨iso₁₂.hom.hom₃ ≫ H.m₁ ≫ iso₁₃.inv.hom₃,
feat(CategoryTheory/Triangulated): more API (#10527)

In this PR, it is shown that in order to show that a pretriangulated category is triangulated category, i.e. in order to check the octahedron axiom, it is possible to replace a given diagram by an isomorphic diagram. This shall be used in #9550 in order to show that the homotopy category of cochain complexes in an additive category is triangulated.

Diff
@@ -64,7 +64,7 @@ namespace Octahedron
 attribute [reassoc] comm₁ comm₂ comm₃ comm₄
 
 variable {X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ : C}
-  {u₁₂ : X₁ ⟶ X₂} {u₂₃ : X₂ ⟶ X₃} {u₁₃ : X₁ ⟶ X₃} (comm : u₁₂ ≫ u₂₃ = u₁₃)
+  {u₁₂ : X₁ ⟶ X₂} {u₂₃ : X₂ ⟶ X₃} {u₁₃ : X₁ ⟶ X₃} {comm : u₁₂ ≫ u₂₃ = u₁₃}
   {v₁₂ : X₂ ⟶ Z₁₂} {w₁₂ : Z₁₂ ⟶ X₁⟦(1 : ℤ)⟧} {h₁₂ : Triangle.mk u₁₂ v₁₂ w₁₂ ∈ distTriang C}
   {v₂₃ : X₃ ⟶ Z₂₃} {w₂₃ : Z₂₃ ⟶ X₂⟦(1 : ℤ)⟧} {h₂₃ : Triangle.mk u₂₃ v₂₃ w₂₃ ∈ distTriang C}
   {v₁₃ : X₃ ⟶ Z₁₃} {w₁₃ : Z₁₃ ⟶ X₁⟦(1 : ℤ)⟧} {h₁₃ : Triangle.mk u₁₃ v₁₃ w₁₃ ∈ distTriang C}
@@ -108,9 +108,58 @@ def triangleMorphism₂ : Triangle.mk u₁₃ v₁₃ w₁₃ ⟶ Triangle.mk u
   comm₃ := h.comm₄
 #align category_theory.triangulated.octahedron.triangle_morphism₂ CategoryTheory.Triangulated.Octahedron.triangleMorphism₂
 
-/- TODO (@joelriou): show that in order to verify the existence of an octahedron, one may
-replace the composable maps `u₁₂` and `u₂₃` by any isomorphic composable maps
-and the given "cones" of `u₁₂`, `u₂₃`, `u₁₃` by any choice of cones. -/
+
+variable (u₁₂ u₁₃ u₂₃ comm h₁₂ h₁₃ h₂₃)
+
+/-- When two diagrams are isomorphic, an octahedron for one gives an octahedron for the other. -/
+def ofIso {X₁' X₂' X₃' Z₁₂' Z₂₃' Z₁₃' : C} (u₁₂' : X₁' ⟶ X₂') (u₂₃' : X₂' ⟶ X₃')
+    (e₁ : X₁ ≅ X₁') (e₂ : X₂ ≅ X₂')(e₃ : X₃ ≅ X₃')
+    (comm₁₂ : u₁₂ ≫ e₂.hom = e₁.hom ≫ u₁₂') (comm₂₃ : u₂₃ ≫ e₃.hom = e₂.hom ≫ u₂₃')
+    (v₁₂' : X₂' ⟶ Z₁₂') (w₁₂' : Z₁₂' ⟶ X₁'⟦(1 : ℤ)⟧)
+    (h₁₂' : Triangle.mk u₁₂' v₁₂' w₁₂' ∈ distTriang C)
+    (v₂₃' : X₃' ⟶ Z₂₃') (w₂₃' : Z₂₃' ⟶ X₂'⟦(1 : ℤ)⟧)
+    (h₂₃' : Triangle.mk u₂₃' v₂₃' w₂₃' ∈ distTriang C)
+    (v₁₃' : X₃' ⟶ Z₁₃') (w₁₃' : Z₁₃' ⟶ X₁'⟦(1 : ℤ)⟧)
+    (h₁₃' : Triangle.mk (u₁₂' ≫ u₂₃') v₁₃' w₁₃' ∈ distTriang C)
+    (H : Octahedron rfl h₁₂' h₂₃' h₁₃') : Octahedron comm h₁₂ h₂₃ h₁₃ := by
+  let iso₁₂ := isoTriangleOfIso₁₂ _ _ h₁₂ h₁₂' e₁ e₂ comm₁₂
+  let iso₂₃ := isoTriangleOfIso₁₂ _ _ h₂₃ h₂₃' e₂ e₃ comm₂₃
+  let iso₁₃ := isoTriangleOfIso₁₂ _ _ h₁₃ h₁₃' e₁ e₃ (by
+    dsimp; rw [← comm, assoc, ← reassoc_of% comm₁₂, comm₂₃])
+  have eq₁₂ := iso₁₂.hom.comm₂
+  have eq₁₂' := iso₁₂.hom.comm₃
+  have eq₁₃ := iso₁₃.hom.comm₂
+  have eq₁₃' := iso₁₃.hom.comm₃
+  have eq₂₃ := iso₂₃.hom.comm₂
+  have eq₂₃' := iso₂₃.hom.comm₃
+  have rel₁₂ := H.triangleMorphism₁.comm₂
+  have rel₁₃ := H.triangleMorphism₁.comm₃
+  have rel₂₂ := H.triangleMorphism₂.comm₂
+  have rel₂₃ := H.triangleMorphism₂.comm₃
+  dsimp at eq₁₂ eq₁₂' eq₁₃ eq₁₃' eq₂₃ eq₂₃' rel₁₂ rel₁₃ rel₂₂ rel₂₃
+  rw [Functor.map_id, comp_id] at rel₁₃
+  rw [id_comp] at rel₂₂
+  refine' ⟨iso₁₂.hom.hom₃ ≫ H.m₁ ≫ iso₁₃.inv.hom₃,
+    iso₁₃.hom.hom₃ ≫ H.m₃ ≫ iso₂₃.inv.hom₃, _, _, _, _, _⟩
+  · rw [reassoc_of% eq₁₂, ← cancel_mono iso₁₃.hom.hom₃, assoc, assoc, assoc, assoc,
+      iso₁₃.inv_hom_id_triangle_hom₃, eq₁₃, reassoc_of% comm₂₃, ← rel₁₂]
+    dsimp
+    rw [comp_id]
+  · rw [← cancel_mono (e₁.hom⟦(1 : ℤ)⟧'), eq₁₂', assoc, assoc, assoc, eq₁₃',
+      iso₁₃.inv_hom_id_triangle_hom₃_assoc, ← rel₁₃]
+  · rw [reassoc_of% eq₁₃, reassoc_of% rel₂₂, ← cancel_mono iso₂₃.hom.hom₃, assoc, assoc,
+      iso₂₃.inv_hom_id_triangle_hom₃, eq₂₃]
+    dsimp
+    rw [comp_id]
+  · rw [← cancel_mono (e₂.hom⟦(1 : ℤ)⟧'), assoc, assoc, assoc,assoc, eq₂₃',
+      iso₂₃.inv_hom_id_triangle_hom₃_assoc, ← rel₂₃, ← Functor.map_comp, comm₁₂,
+      Functor.map_comp, reassoc_of% eq₁₃']
+  · refine' isomorphic_distinguished _ H.mem _ _
+    refine' Triangle.isoMk _ _ (Triangle.π₃.mapIso iso₁₂) (Triangle.π₃.mapIso iso₁₃)
+      (Triangle.π₃.mapIso iso₂₃) (by simp) (by simp) _
+    · dsimp
+      rw [assoc, ← Functor.map_comp, eq₁₂, Functor.map_comp, reassoc_of% eq₂₃']
+
 end Octahedron
 
 end Triangulated
@@ -158,4 +207,25 @@ def someOctahedron [IsTriangulated C]
 
 end Triangulated
 
+variable {C}
+
+/-- Constructor for `IsTriangulated C` which shows that it suffices to obtain an octahedron
+for a suitable isomorphic diagram instead of the given diagram. -/
+lemma IsTriangulated.mk' (h : ∀ ⦃X₁' X₂' X₃' : C⦄ (u₁₂' : X₁' ⟶ X₂') (u₂₃' : X₂' ⟶ X₃'),
+    ∃ (X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ : C) (u₁₂ : X₁ ⟶ X₂) (u₂₃ : X₂ ⟶ X₃) (e₁ : X₁' ≅ X₁) (e₂ : X₂' ≅ X₂)
+    (e₃ : X₃' ≅ X₃) (_ : u₁₂' ≫ e₂.hom = e₁.hom ≫ u₁₂)
+    (_ : u₂₃' ≫ e₃.hom = e₂.hom ≫ u₂₃)
+    (v₁₂ : X₂ ⟶ Z₁₂) (w₁₂ : Z₁₂ ⟶ X₁⟦1⟧) (h₁₂ : Triangle.mk u₁₂ v₁₂ w₁₂ ∈ distTriang C)
+    (v₂₃ : X₃ ⟶ Z₂₃) (w₂₃ : Z₂₃ ⟶ X₂⟦1⟧) (h₂₃ : Triangle.mk u₂₃ v₂₃ w₂₃ ∈ distTriang C)
+    (v₁₃ : X₃ ⟶ Z₁₃) (w₁₃ : Z₁₃ ⟶ X₁⟦1⟧)
+      (h₁₃ : Triangle.mk (u₁₂ ≫ u₂₃) v₁₃ w₁₃ ∈ distTriang C),
+        Nonempty (Octahedron rfl h₁₂ h₂₃ h₁₃)) :
+    IsTriangulated C where
+  octahedron_axiom {X₁' X₂' X₃' Z₁₂' Z₂₃' Z₁₃' u₁₂' u₂₃' u₁₃'} comm'
+    {v₁₂' w₁₂'} h₁₂' {v₂₃' w₂₃'} h₂₃' {v₁₃' w₁₃'} h₁₃' := by
+    obtain ⟨X₁, X₂, X₃, Z₁₂, Z₂₃, Z₁₃, u₁₂, u₂₃, e₁, e₂, e₃, comm₁₂, comm₂₃,
+      v₁₂, w₁₂, h₁₂, v₂₃, w₂₃, h₂₃, v₁₃, w₁₃, h₁₃, H⟩ := h u₁₂' u₂₃'
+    exact ⟨Octahedron.ofIso u₁₂' u₂₃' u₁₃' comm' h₁₂' h₂₃' h₁₃'
+      u₁₂ u₂₃ e₁ e₂ e₃ comm₁₂ comm₂₃ v₁₂ w₁₂ h₁₂ v₂₃ w₂₃ h₂₃ v₁₃ w₁₃ h₁₃ H.some⟩
+
 end CategoryTheory
chore: exactly 4 spaces in theorems (#7328)

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

Diff
@@ -147,11 +147,11 @@ def someOctahedron' [IsTriangulated C] : Octahedron comm h₁₂ h₂₃ h₁₃
 
 /-- A choice of octahedron given by the octahedron axiom. -/
 def someOctahedron [IsTriangulated C]
-  {X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ : C}
-  {u₁₂ : X₁ ⟶ X₂} {u₂₃ : X₂ ⟶ X₃} {u₁₃ : X₁ ⟶ X₃} (comm : u₁₂ ≫ u₂₃ = u₁₃)
-  {v₁₂ : X₂ ⟶ Z₁₂} {w₁₂ : Z₁₂ ⟶ X₁⟦(1 : ℤ)⟧} (h₁₂ : Triangle.mk u₁₂ v₁₂ w₁₂ ∈ distTriang C)
-  {v₂₃ : X₃ ⟶ Z₂₃} {w₂₃ : Z₂₃ ⟶ X₂⟦(1 : ℤ)⟧} (h₂₃ : Triangle.mk u₂₃ v₂₃ w₂₃ ∈ distTriang C)
-  {v₁₃ : X₃ ⟶ Z₁₃} {w₁₃ : Z₁₃ ⟶ X₁⟦(1 : ℤ)⟧} (h₁₃ : Triangle.mk u₁₃ v₁₃ w₁₃ ∈ distTriang C) :
+    {X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ : C}
+    {u₁₂ : X₁ ⟶ X₂} {u₂₃ : X₂ ⟶ X₃} {u₁₃ : X₁ ⟶ X₃} (comm : u₁₂ ≫ u₂₃ = u₁₃)
+    {v₁₂ : X₂ ⟶ Z₁₂} {w₁₂ : Z₁₂ ⟶ X₁⟦(1 : ℤ)⟧} (h₁₂ : Triangle.mk u₁₂ v₁₂ w₁₂ ∈ distTriang C)
+    {v₂₃ : X₃ ⟶ Z₂₃} {w₂₃ : Z₂₃ ⟶ X₂⟦(1 : ℤ)⟧} (h₂₃ : Triangle.mk u₂₃ v₂₃ w₂₃ ∈ distTriang C)
+    {v₁₃ : X₃ ⟶ Z₁₃} {w₁₃ : Z₁₃ ⟶ X₁⟦(1 : ℤ)⟧} (h₁₃ : Triangle.mk u₁₃ v₁₃ w₁₃ ∈ distTriang C) :
     Octahedron comm h₁₂ h₂₃ h₁₃ :=
   someOctahedron' _
 #align category_theory.triangulated.some_octahedron CategoryTheory.Triangulated.someOctahedron
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
@@ -24,7 +24,7 @@ open Limits Category Preadditive Pretriangulated
 
 open ZeroObject
 
-variable (C : Type _) [Category C] [Preadditive C] [HasZeroObject C] [HasShift C ℤ]
+variable (C : Type*) [Category C] [Preadditive C] [HasZeroObject C] [HasShift C ℤ]
   [∀ n : ℤ, Functor.Additive (shiftFunctor C n)] [Pretriangulated C]
 
 namespace Triangulated
feat: Linter that checks that Prop classes are Props (#6148)
Diff
@@ -119,7 +119,7 @@ open Triangulated
 
 /-- A triangulated category is a pretriangulated category which satisfies
 the octahedron axiom (TR 4), see https://stacks.math.columbia.edu/tag/05QK -/
-class IsTriangulated where
+class IsTriangulated : Prop where
   /-- the octahedron axiom (TR 4) -/
   octahedron_axiom :
     ∀ {X₁ X₂ X₃ Z₁₂ Z₂₃ Z₁₃ : C}
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,14 +2,11 @@
 Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
-
-! This file was ported from Lean 3 source module category_theory.triangulated.triangulated
-! leanprover-community/mathlib commit 19786714ebe478f40b503acb4705fb058ba47303
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Triangulated.Pretriangulated
 
+#align_import category_theory.triangulated.triangulated from "leanprover-community/mathlib"@"19786714ebe478f40b503acb4705fb058ba47303"
+
 /-!
 # Triangulated Categories
 
chore: review of automation in category theory (#4793)

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

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

Diff
@@ -59,7 +59,7 @@ instance (X : C) :
     Nonempty (Octahedron (comp_id (𝟙 X)) (contractible_distinguished X)
       (contractible_distinguished X) (contractible_distinguished X)) := by
   refine' ⟨⟨0, 0, _, _, _, _, isomorphic_distinguished _ (contractible_distinguished (0 : C)) _
-    (Triangle.isoMk _ _ (by rfl) (by rfl) (by rfl) (by simp) (by simp) (by simp))⟩⟩
+    (Triangle.isoMk _ _ (by rfl) (by rfl) (by rfl))⟩⟩
   all_goals apply Subsingleton.elim
 
 namespace Octahedron
feat: port CategoryTheory.Triangulated.Triangulated (#3072)

Also actually corrects the SHA that was incorrectly corrected in #3346; the stupid example was in CategoryTheory.Triangulated.Rotate and not CategoryTheory.Triangulated.Basic.

Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Chris Hughes <chrishughes24@gmail.com> Co-authored-by: Jon Eugster <eugster.jon@gmail.com> Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: qawbecrdtey <qawbecrdtey@kaist.ac.kr> Co-authored-by: Jeremy Tan Jie Rui <e0191785@u.nus.edu> Co-authored-by: Sebastian Zivota <loewenheim@mailbox.org> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>

Dependencies 3 + 304

305 files ported (99.0%)
122793 lines ported (99.2%)
Show graph

The unported dependencies are