category_theory.adjunction.limitsMathlib.CategoryTheory.Adjunction.Limits

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -120,16 +120,16 @@ def leftAdjointPreservesColimits : PreservesColimitsOfSize.{v, u} F
 
 #print CategoryTheory.Adjunction.isEquivalencePreservesColimits /-
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalencePreservesColimits (E : C ⥤ D) [IsEquivalence E] :
-    PreservesColimitsOfSize.{v, u} E :=
+instance (priority := 100) isEquivalencePreservesColimits (E : C ⥤ D)
+    [CategoryTheory.Functor.IsEquivalence E] : PreservesColimitsOfSize.{v, u} E :=
   leftAdjointPreservesColimits E.Adjunction
 #align category_theory.adjunction.is_equivalence_preserves_colimits CategoryTheory.Adjunction.isEquivalencePreservesColimits
 -/
 
 #print CategoryTheory.Adjunction.isEquivalenceReflectsColimits /-
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [IsEquivalence E] :
-    ReflectsColimitsOfSize.{v, u} E
+instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C)
+    [CategoryTheory.Functor.IsEquivalence E] : ReflectsColimitsOfSize.{v, u} E
     where ReflectsColimitsOfShape J 𝒥 :=
     {
       ReflectsColimit := fun K =>
@@ -145,8 +145,8 @@ instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [IsEquiva
 
 #print CategoryTheory.Adjunction.isEquivalenceCreatesColimits /-
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [IsEquivalence H] :
-    CreatesColimitsOfSize.{v, u} H
+instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C)
+    [CategoryTheory.Functor.IsEquivalence H] : CreatesColimitsOfSize.{v, u} H
     where CreatesColimitsOfShape J 𝒥 :=
     {
       CreatesColimit := fun F =>
@@ -158,13 +158,13 @@ instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [IsEquival
 -/
 
 -- verify the preserve_colimits instance works as expected:
-example (E : C ⥤ D) [IsEquivalence E] (c : Cocone K) (h : IsColimit c) :
+example (E : C ⥤ D) [CategoryTheory.Functor.IsEquivalence E] (c : Cocone K) (h : IsColimit c) :
     IsColimit (E.mapCocone c) :=
   PreservesColimit.preserves h
 
 #print CategoryTheory.Adjunction.hasColimit_comp_equivalence /-
-theorem hasColimit_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit K] :
-    HasColimit (K ⋙ E) :=
+theorem hasColimit_comp_equivalence (E : C ⥤ D) [CategoryTheory.Functor.IsEquivalence E]
+    [HasColimit K] : HasColimit (K ⋙ E) :=
   HasColimit.mk
     { Cocone := E.mapCocone (colimit.cocone K)
       IsColimit := PreservesColimit.preserves (colimit.isColimit K) }
@@ -172,8 +172,8 @@ theorem hasColimit_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit
 -/
 
 #print CategoryTheory.Adjunction.hasColimit_of_comp_equivalence /-
-theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit (K ⋙ E)] :
-    HasColimit K :=
+theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [CategoryTheory.Functor.IsEquivalence E]
+    [HasColimit (K ⋙ E)] : HasColimit K :=
   @hasColimitOfIso _ _ _ _ (K ⋙ E ⋙ inv E) K
     (@hasColimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
     ((Functor.rightUnitor _).symm ≪≫ isoWhiskerLeft K E.asEquivalence.unitIso)
@@ -182,16 +182,16 @@ theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColim
 
 #print CategoryTheory.Adjunction.hasColimitsOfShape_of_equivalence /-
 /-- Transport a `has_colimits_of_shape` instance across an equivalence. -/
-theorem hasColimitsOfShape_of_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfShape J D] :
-    HasColimitsOfShape J C :=
+theorem hasColimitsOfShape_of_equivalence (E : C ⥤ D) [CategoryTheory.Functor.IsEquivalence E]
+    [HasColimitsOfShape J D] : HasColimitsOfShape J C :=
   ⟨fun F => has_colimit_of_comp_equivalence F E⟩
 #align category_theory.adjunction.has_colimits_of_shape_of_equivalence CategoryTheory.Adjunction.hasColimitsOfShape_of_equivalence
 -/
 
 #print CategoryTheory.Adjunction.has_colimits_of_equivalence /-
 /-- Transport a `has_colimits` instance across an equivalence. -/
-theorem has_colimits_of_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfSize.{v, u} D] :
-    HasColimitsOfSize.{v, u} C :=
+theorem has_colimits_of_equivalence (E : C ⥤ D) [CategoryTheory.Functor.IsEquivalence E]
+    [HasColimitsOfSize.{v, u} D] : HasColimitsOfSize.{v, u} C :=
   ⟨fun J hJ => has_colimits_of_shape_of_equivalence E⟩
 #align category_theory.adjunction.has_colimits_of_equivalence CategoryTheory.Adjunction.has_colimits_of_equivalence
 -/
@@ -268,16 +268,16 @@ def rightAdjointPreservesLimits : PreservesLimitsOfSize.{v, u} G
 
 #print CategoryTheory.Adjunction.isEquivalencePreservesLimits /-
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalencePreservesLimits (E : D ⥤ C) [IsEquivalence E] :
-    PreservesLimitsOfSize.{v, u} E :=
+instance (priority := 100) isEquivalencePreservesLimits (E : D ⥤ C)
+    [CategoryTheory.Functor.IsEquivalence E] : PreservesLimitsOfSize.{v, u} E :=
   rightAdjointPreservesLimits E.inv.Adjunction
 #align category_theory.adjunction.is_equivalence_preserves_limits CategoryTheory.Adjunction.isEquivalencePreservesLimits
 -/
 
 #print CategoryTheory.Adjunction.isEquivalenceReflectsLimits /-
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [IsEquivalence E] :
-    ReflectsLimitsOfSize.{v, u} E
+instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C)
+    [CategoryTheory.Functor.IsEquivalence E] : ReflectsLimitsOfSize.{v, u} E
     where ReflectsLimitsOfShape J 𝒥 :=
     {
       ReflectsLimit := fun K =>
@@ -292,8 +292,8 @@ instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [IsEquivale
 
 #print CategoryTheory.Adjunction.isEquivalenceCreatesLimits /-
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [IsEquivalence H] :
-    CreatesLimitsOfSize.{v, u} H
+instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C)
+    [CategoryTheory.Functor.IsEquivalence H] : CreatesLimitsOfSize.{v, u} H
     where CreatesLimitsOfShape J 𝒥 :=
     {
       CreatesLimit := fun F =>
@@ -305,11 +305,13 @@ instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [IsEquivalen
 -/
 
 -- verify the preserve_limits instance works as expected:
-example (E : D ⥤ C) [IsEquivalence E] (c : Cone K) [h : IsLimit c] : IsLimit (E.mapCone c) :=
+example (E : D ⥤ C) [CategoryTheory.Functor.IsEquivalence E] (c : Cone K) [h : IsLimit c] :
+    IsLimit (E.mapCone c) :=
   PreservesLimit.preserves h
 
 #print CategoryTheory.Adjunction.hasLimit_comp_equivalence /-
-theorem hasLimit_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit K] : HasLimit (K ⋙ E) :=
+theorem hasLimit_comp_equivalence (E : D ⥤ C) [CategoryTheory.Functor.IsEquivalence E]
+    [HasLimit K] : HasLimit (K ⋙ E) :=
   HasLimit.mk
     { Cone := E.mapCone (limit.cone K)
       IsLimit := PreservesLimit.preserves (limit.isLimit K) }
@@ -317,8 +319,8 @@ theorem hasLimit_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit K] :
 -/
 
 #print CategoryTheory.Adjunction.hasLimit_of_comp_equivalence /-
-theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit (K ⋙ E)] :
-    HasLimit K :=
+theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [CategoryTheory.Functor.IsEquivalence E]
+    [HasLimit (K ⋙ E)] : HasLimit K :=
   @hasLimitOfIso _ _ _ _ (K ⋙ E ⋙ inv E) K
     (@hasLimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
     (isoWhiskerLeft K E.asEquivalence.unitIso.symm ≪≫ Functor.rightUnitor _)
@@ -327,16 +329,16 @@ theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit (
 
 #print CategoryTheory.Adjunction.hasLimitsOfShape_of_equivalence /-
 /-- Transport a `has_limits_of_shape` instance across an equivalence. -/
-theorem hasLimitsOfShape_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfShape J C] :
-    HasLimitsOfShape J D :=
+theorem hasLimitsOfShape_of_equivalence (E : D ⥤ C) [CategoryTheory.Functor.IsEquivalence E]
+    [HasLimitsOfShape J C] : HasLimitsOfShape J D :=
   ⟨fun F => has_limit_of_comp_equivalence F E⟩
 #align category_theory.adjunction.has_limits_of_shape_of_equivalence CategoryTheory.Adjunction.hasLimitsOfShape_of_equivalence
 -/
 
 #print CategoryTheory.Adjunction.has_limits_of_equivalence /-
 /-- Transport a `has_limits` instance across an equivalence. -/
-theorem has_limits_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfSize.{v, u} C] :
-    HasLimitsOfSize.{v, u} D :=
+theorem has_limits_of_equivalence (E : D ⥤ C) [CategoryTheory.Functor.IsEquivalence E]
+    [HasLimitsOfSize.{v, u} C] : HasLimitsOfSize.{v, u} D :=
   ⟨fun J hJ => has_limits_of_shape_of_equivalence E⟩
 #align category_theory.adjunction.has_limits_of_equivalence CategoryTheory.Adjunction.has_limits_of_equivalence
 -/
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2019 Reid Barton. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Reid Barton, Johan Commelin
 -/
-import Mathbin.CategoryTheory.Adjunction.Basic
-import Mathbin.CategoryTheory.Limits.Creates
+import CategoryTheory.Adjunction.Basic
+import CategoryTheory.Limits.Creates
 
 #align_import category_theory.adjunction.limits from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2019 Reid Barton. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Reid Barton, Johan Commelin
-
-! This file was ported from Lean 3 source module category_theory.adjunction.limits
-! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Adjunction.Basic
 import Mathbin.CategoryTheory.Limits.Creates
 
+#align_import category_theory.adjunction.limits from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
+
 /-!
 # Adjunctions and limits
 
Diff
@@ -52,8 +52,6 @@ variable {C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]
 
 variable {F : C ⥤ D} {G : D ⥤ C} (adj : F ⊣ G)
 
-include adj
-
 section PreservationColimits
 
 variable {J : Type u} [Category.{v} J] (K : J ⥤ C)
@@ -123,8 +121,6 @@ def leftAdjointPreservesColimits : PreservesColimitsOfSize.{v, u} F
 #align category_theory.adjunction.left_adjoint_preserves_colimits CategoryTheory.Adjunction.leftAdjointPreservesColimits
 -/
 
-omit adj
-
 #print CategoryTheory.Adjunction.isEquivalencePreservesColimits /-
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalencePreservesColimits (E : C ⥤ D) [IsEquivalence E] :
@@ -273,8 +269,6 @@ def rightAdjointPreservesLimits : PreservesLimitsOfSize.{v, u} G
 #align category_theory.adjunction.right_adjoint_preserves_limits CategoryTheory.Adjunction.rightAdjointPreservesLimits
 -/
 
-omit adj
-
 #print CategoryTheory.Adjunction.isEquivalencePreservesLimits /-
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalencePreservesLimits (E : D ⥤ C) [IsEquivalence E] :
@@ -352,6 +346,7 @@ theorem has_limits_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfSi
 
 end PreservationLimits
 
+#print CategoryTheory.Adjunction.coconesIsoComponentHom /-
 /-- auxiliary construction for `cocones_iso` -/
 @[simps]
 def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
@@ -360,7 +355,9 @@ def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
   app j := (adj.homEquiv (K.obj j) Y) (t.app j)
   naturality' j j' f := by erw [← adj.hom_equiv_naturality_left, t.naturality]; dsimp; simp
 #align category_theory.adjunction.cocones_iso_component_hom CategoryTheory.Adjunction.coconesIsoComponentHom
+-/
 
+#print CategoryTheory.Adjunction.coconesIsoComponentInv /-
 /-- auxiliary construction for `cocones_iso` -/
 @[simps]
 def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
@@ -372,7 +369,9 @@ def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
     erw [← adj.hom_equiv_naturality_left_symm, ← adj.hom_equiv_naturality_right_symm, t.naturality]
     dsimp; simp
 #align category_theory.adjunction.cocones_iso_component_inv CategoryTheory.Adjunction.coconesIsoComponentInv
+-/
 
+#print CategoryTheory.Adjunction.conesIsoComponentHom /-
 /-- auxiliary construction for `cones_iso` -/
 @[simps]
 def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒᵖ)
@@ -384,7 +383,9 @@ def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒ
     erw [← adj.hom_equiv_naturality_right, ← t.naturality, category.id_comp, category.id_comp]
     rfl
 #align category_theory.adjunction.cones_iso_component_hom CategoryTheory.Adjunction.conesIsoComponentHom
+-/
 
+#print CategoryTheory.Adjunction.conesIsoComponentInv /-
 /-- auxiliary construction for `cones_iso` -/
 @[simps]
 def conesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒᵖ)
@@ -394,12 +395,14 @@ def conesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒ
   naturality' j j' f := by
     erw [← adj.hom_equiv_naturality_right_symm, ← t.naturality, category.id_comp, category.id_comp]
 #align category_theory.adjunction.cones_iso_component_inv CategoryTheory.Adjunction.conesIsoComponentInv
+-/
 
 end ArbitraryUniverse
 
 variable {C : Type u₁} [Category.{v₀} C] {D : Type u₂} [Category.{v₀} D] {F : C ⥤ D} {G : D ⥤ C}
   (adj : F ⊣ G)
 
+#print CategoryTheory.Adjunction.coconesIso /-
 -- Note: this is natural in K, but we do not yet have the tools to formulate that.
 /-- When `F ⊣ G`,
 the functor associating to each `Y` the cocones over `K ⋙ F` with cone point `Y`
@@ -414,7 +417,9 @@ def coconesIso {J : Type u} [Category.{v} J] {K : J ⥤ C} :
         inv := coconesIsoComponentInv adj Y })
     (by tidy)
 #align category_theory.adjunction.cocones_iso CategoryTheory.Adjunction.coconesIso
+-/
 
+#print CategoryTheory.Adjunction.conesIso /-
 -- Note: this is natural in K, but we do not yet have the tools to formulate that.
 /-- When `F ⊣ G`,
 the functor associating to each `X` the cones over `K` with cone point `F.op.obj X`
@@ -429,6 +434,7 @@ def conesIso {J : Type u} [Category.{v} J] {K : J ⥤ D} :
         inv := conesIsoComponentInv adj X })
     (by tidy)
 #align category_theory.adjunction.cones_iso CategoryTheory.Adjunction.conesIso
+-/
 
 end CategoryTheory.Adjunction
 
Diff
@@ -352,12 +352,6 @@ theorem has_limits_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfSi
 
 end PreservationLimits
 
-/- warning: category_theory.adjunction.cocones_iso_component_hom -> CategoryTheory.Adjunction.coconesIsoComponentHom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (CategoryTheory.Functor.obj.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (Opposite.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F))) Y) -> (CategoryTheory.Functor.obj.{u4, max u2 u3, u6, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K))) Y))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (Prefunctor.obj.{succ u4, max (succ u2) (succ u4), u6, max (succ u2) (succ u4)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u6)) (succ u1)) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F)))) Y) -> (Prefunctor.obj.{succ u4, max (succ u2) (succ u3), u6, max (succ u2) (succ u3)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u3, u6, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K)))) Y))
-Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso_component_hom CategoryTheory.Adjunction.coconesIsoComponentHomₓ'. -/
 /-- auxiliary construction for `cocones_iso` -/
 @[simps]
 def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
@@ -367,12 +361,6 @@ def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
   naturality' j j' f := by erw [← adj.hom_equiv_naturality_left, t.naturality]; dsimp; simp
 #align category_theory.adjunction.cocones_iso_component_hom CategoryTheory.Adjunction.coconesIsoComponentHom
 
-/- warning: category_theory.adjunction.cocones_iso_component_inv -> CategoryTheory.Adjunction.coconesIsoComponentInv is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (CategoryTheory.Functor.obj.{u4, max u2 u3, u6, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K))) Y) -> (CategoryTheory.Functor.obj.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (Opposite.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F))) Y))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (Prefunctor.obj.{succ u4, max (succ u2) (succ u3), u6, max (succ u2) (succ u3)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u3, u6, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K)))) Y) -> (Prefunctor.obj.{succ u4, max (succ u2) (succ u4), u6, max (succ u2) (succ u4)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u6)) (succ u1)) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F)))) Y))
-Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso_component_inv CategoryTheory.Adjunction.coconesIsoComponentInvₓ'. -/
 /-- auxiliary construction for `cocones_iso` -/
 @[simps]
 def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
@@ -385,12 +373,6 @@ def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
     dsimp; simp
 #align category_theory.adjunction.cocones_iso_component_inv CategoryTheory.Adjunction.coconesIsoComponentInv
 
-/- warning: category_theory.adjunction.cones_iso_component_hom -> CategoryTheory.Adjunction.conesIsoComponentHom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2} (X : Opposite.{succ u5} C), (CategoryTheory.Functor.obj.{u3, max u2 u4, u5, succ (max u2 u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.comp.{u3, u4, max u2 u4, u5, u6, succ (max u2 u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.op.{u3, u4, u5, u6} C _inst_1 D _inst_2 F) (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cones.{u1, u4, u2, u6} J _inst_3 D _inst_2) K)) X) -> (CategoryTheory.Functor.obj.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.comp.{u1, u4, u3, u2, u6, u5} J _inst_3 D _inst_2 C _inst_1 K G)) X))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2} (X : Opposite.{succ u5} C), (Prefunctor.obj.{succ u3, max (succ u2) (succ u4), u5, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.toCategoryStruct.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1))) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u4, u5, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.comp.{u3, u4, max u2 u4, u5, u6, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.op.{u3, u4, u5, u6} C _inst_1 D _inst_2 F) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) K))) X) -> (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.toCategoryStruct.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1))) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.comp.{u1, u4, u3, u2, u6, u5} J _inst_3 D _inst_2 C _inst_1 K G))) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cones_iso_component_hom CategoryTheory.Adjunction.conesIsoComponentHomₓ'. -/
 /-- auxiliary construction for `cones_iso` -/
 @[simps]
 def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒᵖ)
@@ -403,12 +385,6 @@ def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒ
     rfl
 #align category_theory.adjunction.cones_iso_component_hom CategoryTheory.Adjunction.conesIsoComponentHom
 
-/- warning: category_theory.adjunction.cones_iso_component_inv -> CategoryTheory.Adjunction.conesIsoComponentInv is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2} (X : Opposite.{succ u5} C), (CategoryTheory.Functor.obj.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.comp.{u1, u4, u3, u2, u6, u5} J _inst_3 D _inst_2 C _inst_1 K G)) X) -> (CategoryTheory.Functor.obj.{u3, max u2 u4, u5, succ (max u2 u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.comp.{u3, u4, max u2 u4, u5, u6, succ (max u2 u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.op.{u3, u4, u5, u6} C _inst_1 D _inst_2 F) (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cones.{u1, u4, u2, u6} J _inst_3 D _inst_2) K)) X))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2} (X : Opposite.{succ u5} C), (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.toCategoryStruct.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1))) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.comp.{u1, u4, u3, u2, u6, u5} J _inst_3 D _inst_2 C _inst_1 K G))) X) -> (Prefunctor.obj.{succ u3, max (succ u2) (succ u4), u5, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.toCategoryStruct.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1))) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u4, u5, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.comp.{u3, u4, max u2 u4, u5, u6, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.op.{u3, u4, u5, u6} C _inst_1 D _inst_2 F) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) K))) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cones_iso_component_inv CategoryTheory.Adjunction.conesIsoComponentInvₓ'. -/
 /-- auxiliary construction for `cones_iso` -/
 @[simps]
 def conesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒᵖ)
@@ -424,12 +400,6 @@ end ArbitraryUniverse
 variable {C : Type u₁} [Category.{v₀} C] {D : Type u₂} [Category.{v₀} D] {F : C ⥤ D} {G : D ⥤ C}
   (adj : F ⊣ G)
 
-/- warning: category_theory.adjunction.cocones_iso -> CategoryTheory.Adjunction.coconesIso is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1}, CategoryTheory.Iso.{max u5 u2 u3, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u5} J _inst_3 C _inst_1 D _inst_2 K F))) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u5, u4, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u4 u2 u3, max u1 u3 u2 u4, max u3 (max u2 u3) u4 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u4)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u4} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u4, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u4} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u4)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) K))))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1}, CategoryTheory.Iso.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u5} J _inst_3 C _inst_1 D _inst_2 K F))) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u5, u4, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u4)) (succ u3), max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (Opposite.{max (max (max (succ u4) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u4) u1) u3} (Opposite.{max (max (max (succ u4) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u4) u1) u3} (Opposite.{max (max (max (succ u4) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u4) u3, max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (Opposite.{max (max (max (succ u4) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u4)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) K))))
-Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso CategoryTheory.Adjunction.coconesIsoₓ'. -/
 -- Note: this is natural in K, but we do not yet have the tools to formulate that.
 /-- When `F ⊣ G`,
 the functor associating to each `Y` the cocones over `K ⋙ F` with cone point `Y`
@@ -445,12 +415,6 @@ def coconesIso {J : Type u} [Category.{v} J] {K : J ⥤ C} :
     (by tidy)
 #align category_theory.adjunction.cocones_iso CategoryTheory.Adjunction.coconesIso
 
-/- warning: category_theory.adjunction.cones_iso -> CategoryTheory.Adjunction.conesIso is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2}, CategoryTheory.Iso.{max u4 u2 u3, max u3 (max u2 u3) u4 (succ (max u2 u3))} (CategoryTheory.Functor.{u3, max u2 u3, u4, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u4, u5, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.op.{u3, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 D _inst_2) K)) (CategoryTheory.Functor.obj.{max u2 u3, max u4 u2 u3, max u1 u3 u2 u4, max u3 (max u2 u3) u4 (succ (max u2 u3))} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u4, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u5, u4} J _inst_3 D _inst_2 C _inst_1 K G)))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2}, CategoryTheory.Iso.{max (max u2 u4) u3, max (max (max (max (succ u2) (succ u3)) u4) u2 u3) u3} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u4, u5, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.op.{u3, u3, u4, u5} C _inst_1 D _inst_2 F) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 D _inst_2)) K)) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u4)) (succ u3), max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1))) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u4) u3, max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u5, u4} J _inst_3 D _inst_2 C _inst_1 K G)))
-Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cones_iso CategoryTheory.Adjunction.conesIsoₓ'. -/
 -- Note: this is natural in K, but we do not yet have the tools to formulate that.
 /-- When `F ⊣ G`,
 the functor associating to each `X` the cones over `K` with cone point `F.op.obj X`
Diff
@@ -364,10 +364,7 @@ def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
     (t : ((cocones J D).obj (op (K ⋙ F))).obj Y) : (G ⋙ (cocones J C).obj (op K)).obj Y
     where
   app j := (adj.homEquiv (K.obj j) Y) (t.app j)
-  naturality' j j' f := by
-    erw [← adj.hom_equiv_naturality_left, t.naturality]
-    dsimp
-    simp
+  naturality' j j' f := by erw [← adj.hom_equiv_naturality_left, t.naturality]; dsimp; simp
 #align category_theory.adjunction.cocones_iso_component_hom CategoryTheory.Adjunction.coconesIsoComponentHom
 
 /- warning: category_theory.adjunction.cocones_iso_component_inv -> CategoryTheory.Adjunction.coconesIsoComponentInv is a dubious translation:
Diff
@@ -356,7 +356,7 @@ end PreservationLimits
 lean 3 declaration is
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (CategoryTheory.Functor.obj.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (Opposite.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F))) Y) -> (CategoryTheory.Functor.obj.{u4, max u2 u3, u6, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K))) Y))
 but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (Prefunctor.obj.{succ u4, max (succ u2) (succ u4), u6, max (succ u2) (succ u4)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u6)) (succ u1)) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F)))) Y) -> (Prefunctor.obj.{succ u4, max (succ u2) (succ u3), u6, max (succ u2) (succ u3)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u3, u6, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K)))) Y))
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (Prefunctor.obj.{succ u4, max (succ u2) (succ u4), u6, max (succ u2) (succ u4)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u6)) (succ u1)) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F)))) Y) -> (Prefunctor.obj.{succ u4, max (succ u2) (succ u3), u6, max (succ u2) (succ u3)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u3, u6, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K)))) Y))
 Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso_component_hom CategoryTheory.Adjunction.coconesIsoComponentHomₓ'. -/
 /-- auxiliary construction for `cocones_iso` -/
 @[simps]
@@ -374,7 +374,7 @@ def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
 lean 3 declaration is
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (CategoryTheory.Functor.obj.{u4, max u2 u3, u6, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K))) Y) -> (CategoryTheory.Functor.obj.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (Opposite.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F))) Y))
 but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (Prefunctor.obj.{succ u4, max (succ u2) (succ u3), u6, max (succ u2) (succ u3)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u3, u6, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K)))) Y) -> (Prefunctor.obj.{succ u4, max (succ u2) (succ u4), u6, max (succ u2) (succ u4)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u6)) (succ u1)) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F)))) Y))
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (Prefunctor.obj.{succ u4, max (succ u2) (succ u3), u6, max (succ u2) (succ u3)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u3, u6, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K)))) Y) -> (Prefunctor.obj.{succ u4, max (succ u2) (succ u4), u6, max (succ u2) (succ u4)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{max (max (max (succ u6) (succ u2)) (succ u4)) (succ u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u6)) (succ u1)) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F)))) Y))
 Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso_component_inv CategoryTheory.Adjunction.coconesIsoComponentInvₓ'. -/
 /-- auxiliary construction for `cocones_iso` -/
 @[simps]
@@ -431,7 +431,7 @@ variable {C : Type u₁} [Category.{v₀} C] {D : Type u₂} [Category.{v₀} D]
 lean 3 declaration is
   forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1}, CategoryTheory.Iso.{max u5 u2 u3, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u5} J _inst_3 C _inst_1 D _inst_2 K F))) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u5, u4, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u4 u2 u3, max u1 u3 u2 u4, max u3 (max u2 u3) u4 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u4)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u4} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u4, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u4} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u4)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) K))))
 but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1}, CategoryTheory.Iso.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u5} J _inst_3 C _inst_1 D _inst_2 K F))) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u5, u4, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u4)) (succ u3), max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (Opposite.{succ (max (max (max u4 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u4) u1) u3} (Opposite.{succ (max (max (max u4 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u4) u1) u3} (Opposite.{succ (max (max (max u4 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u4) u3, max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (Opposite.{succ (max (max (max u4 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u4)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) K))))
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1}, CategoryTheory.Iso.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{max (max (max (succ u5) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u5} J _inst_3 C _inst_1 D _inst_2 K F))) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u5, u4, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u4)) (succ u3), max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (Opposite.{max (max (max (succ u4) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u4) u1) u3} (Opposite.{max (max (max (succ u4) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u4) u1) u3} (Opposite.{max (max (max (succ u4) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u4) u3, max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (Opposite.{max (max (max (succ u4) (succ u2)) (succ u3)) (succ u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u4)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) K))))
 Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso CategoryTheory.Adjunction.coconesIsoₓ'. -/
 -- Note: this is natural in K, but we do not yet have the tools to formulate that.
 /-- When `F ⊣ G`,
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Reid Barton, Johan Commelin
 
 ! This file was ported from Lean 3 source module category_theory.adjunction.limits
-! leanprover-community/mathlib commit 9e7c80f638149bfb3504ba8ff48dfdbfc949fb1a
+! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.CategoryTheory.Limits.Creates
 /-!
 # Adjunctions and limits
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 A left adjoint preserves colimits (`category_theory.adjunction.left_adjoint_preserves_colimits`),
 and a right adjoint preserves limits (`category_theory.adjunction.right_adjoint_preserves_limits`).
 
Diff
@@ -55,6 +55,7 @@ section PreservationColimits
 
 variable {J : Type u} [Category.{v} J] (K : J ⥤ C)
 
+#print CategoryTheory.Adjunction.functorialityRightAdjoint /-
 /-- The right adjoint of `cocones.functoriality K F : cocone K ⥤ cocone (K ⋙ F)`.
 
 Auxiliary definition for `functoriality_is_left_adjoint`.
@@ -63,9 +64,11 @@ def functorialityRightAdjoint : Cocone (K ⋙ F) ⥤ Cocone K :=
   Cocones.functoriality _ G ⋙
     Cocones.precompose (K.rightUnitor.inv ≫ whiskerLeft K adj.Unit ≫ (associator _ _ _).inv)
 #align category_theory.adjunction.functoriality_right_adjoint CategoryTheory.Adjunction.functorialityRightAdjoint
+-/
 
 attribute [local reducible] functoriality_right_adjoint
 
+#print CategoryTheory.Adjunction.functorialityUnit /-
 /-- The unit for the adjunction for `cocones.functoriality K F : cocone K ⥤ cocone (K ⋙ F)`.
 
 Auxiliary definition for `functoriality_is_left_adjoint`.
@@ -74,7 +77,9 @@ Auxiliary definition for `functoriality_is_left_adjoint`.
 def functorialityUnit : 𝟭 (Cocone K) ⟶ Cocones.functoriality _ F ⋙ functorialityRightAdjoint adj K
     where app c := { Hom := adj.Unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit CategoryTheory.Adjunction.functorialityUnit
+-/
 
+#print CategoryTheory.Adjunction.functorialityCounit /-
 /-- The counit for the adjunction for `cocones.functoriality K F : cocone K ⥤ cocone (K ⋙ F)`.
 
 Auxiliary definition for `functoriality_is_left_adjoint`.
@@ -84,7 +89,9 @@ def functorialityCounit :
     functorialityRightAdjoint adj K ⋙ Cocones.functoriality _ F ⟶ 𝟭 (Cocone (K ⋙ F))
     where app c := { Hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit CategoryTheory.Adjunction.functorialityCounit
+-/
 
+#print CategoryTheory.Adjunction.functorialityIsLeftAdjoint /-
 /-- The functor `cocones.functoriality K F : cocone K ⥤ cocone (K ⋙ F)` is a left adjoint. -/
 def functorialityIsLeftAdjoint : IsLeftAdjoint (Cocones.functoriality K F)
     where
@@ -94,7 +101,9 @@ def functorialityIsLeftAdjoint : IsLeftAdjoint (Cocones.functoriality K F)
       { Unit := functorialityUnit adj K
         counit := functorialityCounit adj K }
 #align category_theory.adjunction.functoriality_is_left_adjoint CategoryTheory.Adjunction.functorialityIsLeftAdjoint
+-/
 
+#print CategoryTheory.Adjunction.leftAdjointPreservesColimits /-
 /-- A left adjoint preserves colimits.
 
 See <https://stacks.math.columbia.edu/tag/0038>.
@@ -109,15 +118,19 @@ def leftAdjointPreservesColimits : PreservesColimitsOfSize.{v, u} F
               @Equiv.unique _ _ (is_colimit.iso_unique_cocone_morphism.hom hc _)
                 ((adj.functoriality_is_left_adjoint _).adj.homEquiv _ _) } }
 #align category_theory.adjunction.left_adjoint_preserves_colimits CategoryTheory.Adjunction.leftAdjointPreservesColimits
+-/
 
 omit adj
 
+#print CategoryTheory.Adjunction.isEquivalencePreservesColimits /-
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalencePreservesColimits (E : C ⥤ D) [IsEquivalence E] :
     PreservesColimitsOfSize.{v, u} E :=
   leftAdjointPreservesColimits E.Adjunction
 #align category_theory.adjunction.is_equivalence_preserves_colimits CategoryTheory.Adjunction.isEquivalencePreservesColimits
+-/
 
+#print CategoryTheory.Adjunction.isEquivalenceReflectsColimits /-
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [IsEquivalence E] :
     ReflectsColimitsOfSize.{v, u} E
@@ -132,7 +145,9 @@ instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [IsEquiva
             refine' ((is_colimit.precompose_inv_equiv K.right_unitor _).symm l).ofIsoColimit _
             tidy } }
 #align category_theory.adjunction.is_equivalence_reflects_colimits CategoryTheory.Adjunction.isEquivalenceReflectsColimits
+-/
 
+#print CategoryTheory.Adjunction.isEquivalenceCreatesColimits /-
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [IsEquivalence H] :
     CreatesColimitsOfSize.{v, u} H
@@ -144,37 +159,46 @@ instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [IsEquival
             { liftedCocone := H.map_cocone_inv c
               validLift := H.map_cocone_map_cocone_inv c } } }
 #align category_theory.adjunction.is_equivalence_creates_colimits CategoryTheory.Adjunction.isEquivalenceCreatesColimits
+-/
 
 -- verify the preserve_colimits instance works as expected:
 example (E : C ⥤ D) [IsEquivalence E] (c : Cocone K) (h : IsColimit c) :
     IsColimit (E.mapCocone c) :=
   PreservesColimit.preserves h
 
+#print CategoryTheory.Adjunction.hasColimit_comp_equivalence /-
 theorem hasColimit_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit K] :
     HasColimit (K ⋙ E) :=
   HasColimit.mk
     { Cocone := E.mapCocone (colimit.cocone K)
       IsColimit := PreservesColimit.preserves (colimit.isColimit K) }
 #align category_theory.adjunction.has_colimit_comp_equivalence CategoryTheory.Adjunction.hasColimit_comp_equivalence
+-/
 
+#print CategoryTheory.Adjunction.hasColimit_of_comp_equivalence /-
 theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit (K ⋙ E)] :
     HasColimit K :=
   @hasColimitOfIso _ _ _ _ (K ⋙ E ⋙ inv E) K
     (@hasColimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
     ((Functor.rightUnitor _).symm ≪≫ isoWhiskerLeft K E.asEquivalence.unitIso)
 #align category_theory.adjunction.has_colimit_of_comp_equivalence CategoryTheory.Adjunction.hasColimit_of_comp_equivalence
+-/
 
+#print CategoryTheory.Adjunction.hasColimitsOfShape_of_equivalence /-
 /-- Transport a `has_colimits_of_shape` instance across an equivalence. -/
 theorem hasColimitsOfShape_of_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfShape J D] :
     HasColimitsOfShape J C :=
   ⟨fun F => has_colimit_of_comp_equivalence F E⟩
 #align category_theory.adjunction.has_colimits_of_shape_of_equivalence CategoryTheory.Adjunction.hasColimitsOfShape_of_equivalence
+-/
 
+#print CategoryTheory.Adjunction.has_colimits_of_equivalence /-
 /-- Transport a `has_colimits` instance across an equivalence. -/
 theorem has_colimits_of_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfSize.{v, u} D] :
     HasColimitsOfSize.{v, u} C :=
   ⟨fun J hJ => has_colimits_of_shape_of_equivalence E⟩
 #align category_theory.adjunction.has_colimits_of_equivalence CategoryTheory.Adjunction.has_colimits_of_equivalence
+-/
 
 end PreservationColimits
 
@@ -182,6 +206,7 @@ section PreservationLimits
 
 variable {J : Type u} [Category.{v} J] (K : J ⥤ D)
 
+#print CategoryTheory.Adjunction.functorialityLeftAdjoint /-
 /-- The left adjoint of `cones.functoriality K G : cone K ⥤ cone (K ⋙ G)`.
 
 Auxiliary definition for `functoriality_is_right_adjoint`.
@@ -190,9 +215,11 @@ def functorialityLeftAdjoint : Cone (K ⋙ G) ⥤ Cone K :=
   Cones.functoriality _ F ⋙
     Cones.postcompose ((associator _ _ _).Hom ≫ whiskerLeft K adj.counit ≫ K.rightUnitor.Hom)
 #align category_theory.adjunction.functoriality_left_adjoint CategoryTheory.Adjunction.functorialityLeftAdjoint
+-/
 
 attribute [local reducible] functoriality_left_adjoint
 
+#print CategoryTheory.Adjunction.functorialityUnit' /-
 /-- The unit for the adjunction for`cones.functoriality K G : cone K ⥤ cone (K ⋙ G)`.
 
 Auxiliary definition for `functoriality_is_right_adjoint`.
@@ -201,7 +228,9 @@ Auxiliary definition for `functoriality_is_right_adjoint`.
 def functorialityUnit' : 𝟭 (Cone (K ⋙ G)) ⟶ functorialityLeftAdjoint adj K ⋙ Cones.functoriality _ G
     where app c := { Hom := adj.Unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit' CategoryTheory.Adjunction.functorialityUnit'
+-/
 
+#print CategoryTheory.Adjunction.functorialityCounit' /-
 /-- The counit for the adjunction for`cones.functoriality K G : cone K ⥤ cone (K ⋙ G)`.
 
 Auxiliary definition for `functoriality_is_right_adjoint`.
@@ -210,7 +239,9 @@ Auxiliary definition for `functoriality_is_right_adjoint`.
 def functorialityCounit' : Cones.functoriality _ G ⋙ functorialityLeftAdjoint adj K ⟶ 𝟭 (Cone K)
     where app c := { Hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit' CategoryTheory.Adjunction.functorialityCounit'
+-/
 
+#print CategoryTheory.Adjunction.functorialityIsRightAdjoint /-
 /-- The functor `cones.functoriality K G : cone K ⥤ cone (K ⋙ G)` is a right adjoint. -/
 def functorialityIsRightAdjoint : IsRightAdjoint (Cones.functoriality K G)
     where
@@ -220,7 +251,9 @@ def functorialityIsRightAdjoint : IsRightAdjoint (Cones.functoriality K G)
       { Unit := functorialityUnit' adj K
         counit := functorialityCounit' adj K }
 #align category_theory.adjunction.functoriality_is_right_adjoint CategoryTheory.Adjunction.functorialityIsRightAdjoint
+-/
 
+#print CategoryTheory.Adjunction.rightAdjointPreservesLimits /-
 /-- A right adjoint preserves limits.
 
 See <https://stacks.math.columbia.edu/tag/0038>.
@@ -235,15 +268,19 @@ def rightAdjointPreservesLimits : PreservesLimitsOfSize.{v, u} G
               @Equiv.unique _ _ (is_limit.iso_unique_cone_morphism.hom hc _)
                 ((adj.functoriality_is_right_adjoint _).adj.homEquiv _ _).symm } }
 #align category_theory.adjunction.right_adjoint_preserves_limits CategoryTheory.Adjunction.rightAdjointPreservesLimits
+-/
 
 omit adj
 
+#print CategoryTheory.Adjunction.isEquivalencePreservesLimits /-
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalencePreservesLimits (E : D ⥤ C) [IsEquivalence E] :
     PreservesLimitsOfSize.{v, u} E :=
   rightAdjointPreservesLimits E.inv.Adjunction
 #align category_theory.adjunction.is_equivalence_preserves_limits CategoryTheory.Adjunction.isEquivalencePreservesLimits
+-/
 
+#print CategoryTheory.Adjunction.isEquivalenceReflectsLimits /-
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [IsEquivalence E] :
     ReflectsLimitsOfSize.{v, u} E
@@ -257,7 +294,9 @@ instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [IsEquivale
             refine' ((is_limit.postcompose_hom_equiv K.left_unitor _).symm this).ofIsoLimit _
             tidy } }
 #align category_theory.adjunction.is_equivalence_reflects_limits CategoryTheory.Adjunction.isEquivalenceReflectsLimits
+-/
 
+#print CategoryTheory.Adjunction.isEquivalenceCreatesLimits /-
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [IsEquivalence H] :
     CreatesLimitsOfSize.{v, u} H
@@ -269,38 +308,53 @@ instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [IsEquivalen
             { liftedCone := H.map_cone_inv c
               validLift := H.map_cone_map_cone_inv c } } }
 #align category_theory.adjunction.is_equivalence_creates_limits CategoryTheory.Adjunction.isEquivalenceCreatesLimits
+-/
 
 -- verify the preserve_limits instance works as expected:
 example (E : D ⥤ C) [IsEquivalence E] (c : Cone K) [h : IsLimit c] : IsLimit (E.mapCone c) :=
   PreservesLimit.preserves h
 
+#print CategoryTheory.Adjunction.hasLimit_comp_equivalence /-
 theorem hasLimit_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit K] : HasLimit (K ⋙ E) :=
   HasLimit.mk
     { Cone := E.mapCone (limit.cone K)
       IsLimit := PreservesLimit.preserves (limit.isLimit K) }
 #align category_theory.adjunction.has_limit_comp_equivalence CategoryTheory.Adjunction.hasLimit_comp_equivalence
+-/
 
+#print CategoryTheory.Adjunction.hasLimit_of_comp_equivalence /-
 theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit (K ⋙ E)] :
     HasLimit K :=
   @hasLimitOfIso _ _ _ _ (K ⋙ E ⋙ inv E) K
     (@hasLimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
     (isoWhiskerLeft K E.asEquivalence.unitIso.symm ≪≫ Functor.rightUnitor _)
 #align category_theory.adjunction.has_limit_of_comp_equivalence CategoryTheory.Adjunction.hasLimit_of_comp_equivalence
+-/
 
+#print CategoryTheory.Adjunction.hasLimitsOfShape_of_equivalence /-
 /-- Transport a `has_limits_of_shape` instance across an equivalence. -/
 theorem hasLimitsOfShape_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfShape J C] :
     HasLimitsOfShape J D :=
   ⟨fun F => has_limit_of_comp_equivalence F E⟩
 #align category_theory.adjunction.has_limits_of_shape_of_equivalence CategoryTheory.Adjunction.hasLimitsOfShape_of_equivalence
+-/
 
+#print CategoryTheory.Adjunction.has_limits_of_equivalence /-
 /-- Transport a `has_limits` instance across an equivalence. -/
 theorem has_limits_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfSize.{v, u} C] :
     HasLimitsOfSize.{v, u} D :=
   ⟨fun J hJ => has_limits_of_shape_of_equivalence E⟩
 #align category_theory.adjunction.has_limits_of_equivalence CategoryTheory.Adjunction.has_limits_of_equivalence
+-/
 
 end PreservationLimits
 
+/- warning: category_theory.adjunction.cocones_iso_component_hom -> CategoryTheory.Adjunction.coconesIsoComponentHom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (CategoryTheory.Functor.obj.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (Opposite.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F))) Y) -> (CategoryTheory.Functor.obj.{u4, max u2 u3, u6, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K))) Y))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (Prefunctor.obj.{succ u4, max (succ u2) (succ u4), u6, max (succ u2) (succ u4)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u6)) (succ u1)) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F)))) Y) -> (Prefunctor.obj.{succ u4, max (succ u2) (succ u3), u6, max (succ u2) (succ u3)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u3, u6, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K)))) Y))
+Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso_component_hom CategoryTheory.Adjunction.coconesIsoComponentHomₓ'. -/
 /-- auxiliary construction for `cocones_iso` -/
 @[simps]
 def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
@@ -313,6 +367,12 @@ def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
     simp
 #align category_theory.adjunction.cocones_iso_component_hom CategoryTheory.Adjunction.coconesIsoComponentHom
 
+/- warning: category_theory.adjunction.cocones_iso_component_inv -> CategoryTheory.Adjunction.coconesIsoComponentInv is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (CategoryTheory.Functor.obj.{u4, max u2 u3, u6, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K))) Y) -> (CategoryTheory.Functor.obj.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (Opposite.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u4 u2 u6)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F))) Y))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1} (Y : D), (Prefunctor.obj.{succ u4, max (succ u2) (succ u3), u6, max (succ u2) (succ u3)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u3, u6, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.comp.{u4, u3, max u2 u3, u6, u5, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) K)))) Y) -> (Prefunctor.obj.{succ u4, max (succ u2) (succ u4), u6, max (succ u2) (succ u4)} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (Opposite.{succ (max (max (max u6 u2) u4) u1)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} D _inst_2 Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cocones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u6)) (succ u1)) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 K F)))) Y))
+Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso_component_inv CategoryTheory.Adjunction.coconesIsoComponentInvₓ'. -/
 /-- auxiliary construction for `cocones_iso` -/
 @[simps]
 def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
@@ -325,6 +385,12 @@ def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
     dsimp; simp
 #align category_theory.adjunction.cocones_iso_component_inv CategoryTheory.Adjunction.coconesIsoComponentInv
 
+/- warning: category_theory.adjunction.cones_iso_component_hom -> CategoryTheory.Adjunction.conesIsoComponentHom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2} (X : Opposite.{succ u5} C), (CategoryTheory.Functor.obj.{u3, max u2 u4, u5, succ (max u2 u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.comp.{u3, u4, max u2 u4, u5, u6, succ (max u2 u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.op.{u3, u4, u5, u6} C _inst_1 D _inst_2 F) (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cones.{u1, u4, u2, u6} J _inst_3 D _inst_2) K)) X) -> (CategoryTheory.Functor.obj.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.comp.{u1, u4, u3, u2, u6, u5} J _inst_3 D _inst_2 C _inst_1 K G)) X))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2} (X : Opposite.{succ u5} C), (Prefunctor.obj.{succ u3, max (succ u2) (succ u4), u5, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.toCategoryStruct.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1))) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u4, u5, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.comp.{u3, u4, max u2 u4, u5, u6, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.op.{u3, u4, u5, u6} C _inst_1 D _inst_2 F) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) K))) X) -> (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.toCategoryStruct.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1))) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.comp.{u1, u4, u3, u2, u6, u5} J _inst_3 D _inst_2 C _inst_1 K G))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cones_iso_component_hom CategoryTheory.Adjunction.conesIsoComponentHomₓ'. -/
 /-- auxiliary construction for `cones_iso` -/
 @[simps]
 def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒᵖ)
@@ -337,6 +403,12 @@ def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒ
     rfl
 #align category_theory.adjunction.cones_iso_component_hom CategoryTheory.Adjunction.conesIsoComponentHom
 
+/- warning: category_theory.adjunction.cones_iso_component_inv -> CategoryTheory.Adjunction.conesIsoComponentInv is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2} (X : Opposite.{succ u5} C), (CategoryTheory.Functor.obj.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.comp.{u1, u4, u3, u2, u6, u5} J _inst_3 D _inst_2 C _inst_1 K G)) X) -> (CategoryTheory.Functor.obj.{u3, max u2 u4, u5, succ (max u2 u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.comp.{u3, u4, max u2 u4, u5, u6, succ (max u2 u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.op.{u3, u4, u5, u6} C _inst_1 D _inst_2 F) (CategoryTheory.Functor.obj.{max u2 u4, max u6 u2 u4, max u1 u4 u2 u6, max u4 (max u2 u4) u6 (succ (max u2 u4))} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u4, max u2 u4, u6, succ (max u2 u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, succ (max u2 u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cones.{u1, u4, u2, u6} J _inst_3 D _inst_2) K)) X))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] {F : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u4, u3, u6, u5} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u4, u5, u6} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2} (X : Opposite.{succ u5} C), (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.toCategoryStruct.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1))) Type.{max u2 u3} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (succ u2) (succ u3)} Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 C _inst_1)) (CategoryTheory.Functor.comp.{u1, u4, u3, u2, u6, u5} J _inst_3 D _inst_2 C _inst_1 K G))) X) -> (Prefunctor.obj.{succ u3, max (succ u2) (succ u4), u5, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.toCategoryStruct.{u3, u5} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1))) Type.{max u2 u4} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (succ u2) (succ u4)} Type.{max u2 u4} CategoryTheory.types.{max u2 u4})) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u4, u5, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.comp.{u3, u4, max u2 u4, u5, u6, max (succ u2) (succ u4)} (Opposite.{succ u5} C) (CategoryTheory.Category.opposite.{u3, u5} C _inst_1) (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4} (CategoryTheory.Functor.op.{u3, u4, u5, u6} C _inst_1 D _inst_2 F) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (succ u2) (succ u6)) (succ u4), max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2))) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u6) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max u2 u6) u4, max (max (max u2 u6) u1) u4, max (max (succ u2) u6) (succ u4)} (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.Functor.category.{u4, max u2 u4, u6, max (succ u2) (succ u4)} (Opposite.{succ u6} D) (CategoryTheory.Category.opposite.{u4, u6} D _inst_2) Type.{max u2 u4} CategoryTheory.types.{max u2 u4}) (CategoryTheory.cones.{u1, u4, u2, u6} J _inst_3 D _inst_2)) K))) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cones_iso_component_inv CategoryTheory.Adjunction.conesIsoComponentInvₓ'. -/
 /-- auxiliary construction for `cones_iso` -/
 @[simps]
 def conesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒᵖ)
@@ -352,6 +424,12 @@ end ArbitraryUniverse
 variable {C : Type u₁} [Category.{v₀} C] {D : Type u₂} [Category.{v₀} D] {F : C ⥤ D} {G : D ⥤ C}
   (adj : F ⊣ G)
 
+/- warning: category_theory.adjunction.cocones_iso -> CategoryTheory.Adjunction.coconesIso is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1}, CategoryTheory.Iso.{max u5 u2 u3, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u5} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 D _inst_2) (Opposite.op.{succ (max u1 u3 u2 u5)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u5} J _inst_3 C _inst_1 D _inst_2 K F))) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u5, u4, succ (max u2 u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (CategoryTheory.Functor.obj.{max u2 u3, max u4 u2 u3, max u1 u3 u2 u4, max u3 (max u2 u3) u4 (succ (max u2 u3))} (Opposite.{succ (max u1 u3 u2 u4)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max u1 u3 u2 u4} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u4, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, succ (max u2 u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u4} J _inst_3 C _inst_1) (Opposite.op.{succ (max u1 u3 u2 u4)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) K))))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1}, CategoryTheory.Iso.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (Opposite.{succ (max (max (max u5 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u5} J _inst_3 D _inst_2)) (Opposite.op.{max (max (max (succ u2) (succ u5)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u5} J _inst_3 C _inst_1 D _inst_2 K F))) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u5, u4, max (succ u2) (succ u3)} D _inst_2 C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} G (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u4)) (succ u3), max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (Opposite.{succ (max (max (max u4 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u4) u1) u3} (Opposite.{succ (max (max (max u4 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u4) u1) u3} (Opposite.{succ (max (max (max u4 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)))) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u4) u3, max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (Opposite.{succ (max (max (max u4 u2) u3) u1)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Category.opposite.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} C _inst_1 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cocones.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (Opposite.op.{max (max (max (succ u2) (succ u4)) (succ u1)) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) K))))
+Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cocones_iso CategoryTheory.Adjunction.coconesIsoₓ'. -/
 -- Note: this is natural in K, but we do not yet have the tools to formulate that.
 /-- When `F ⊣ G`,
 the functor associating to each `Y` the cocones over `K ⋙ F` with cone point `Y`
@@ -367,6 +445,12 @@ def coconesIso {J : Type u} [Category.{v} J] {K : J ⥤ C} :
     (by tidy)
 #align category_theory.adjunction.cocones_iso CategoryTheory.Adjunction.coconesIso
 
+/- warning: category_theory.adjunction.cones_iso -> CategoryTheory.Adjunction.conesIso is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2}, CategoryTheory.Iso.{max u4 u2 u3, max u3 (max u2 u3) u4 (succ (max u2 u3))} (CategoryTheory.Functor.{u3, max u2 u3, u4, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u4, u5, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.op.{u3, u3, u4, u5} C _inst_1 D _inst_2 F) (CategoryTheory.Functor.obj.{max u2 u3, max u5 u2 u3, max u1 u3 u2 u5, max u3 (max u2 u3) u5 (succ (max u2 u3))} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, succ (max u2 u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 D _inst_2) K)) (CategoryTheory.Functor.obj.{max u2 u3, max u4 u2 u3, max u1 u3 u2 u4, max u3 (max u2 u3) u4 (succ (max u2 u3))} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u4, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, succ (max u2 u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u5, u4} J _inst_3 D _inst_2 C _inst_1 K G)))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {D : Type.{u5}} [_inst_2 : CategoryTheory.Category.{u3, u5} D] {F : CategoryTheory.Functor.{u3, u3, u4, u5} C _inst_1 D _inst_2} {G : CategoryTheory.Functor.{u3, u3, u5, u4} D _inst_2 C _inst_1}, (CategoryTheory.Adjunction.{u3, u3, u4, u5} C _inst_1 D _inst_2 F G) -> (forall {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] {K : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2}, CategoryTheory.Iso.{max (max u2 u4) u3, max (max (max (max (succ u2) (succ u3)) u4) u2 u3) u3} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.comp.{u3, u3, max u2 u3, u4, u5, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.op.{u3, u3, u4, u5} C _inst_1 D _inst_2 F) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u5)) (succ u3), max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u5) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2))) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u5) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u5) u3, max (max (max u2 u5) u1) u3, max (max (succ u2) u5) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 D _inst_2) (CategoryTheory.Functor.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u5, max (succ u2) (succ u3)} (Opposite.{succ u5} D) (CategoryTheory.Category.opposite.{u3, u5} D _inst_2) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u5} J _inst_3 D _inst_2)) K)) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (succ u2) (succ u4)) (succ u3), max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u4) u1) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1))) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max (max u2 u4) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max u2 u4) u3, max (max (max u2 u4) u1) u3, max (max (succ u2) u4) (succ u3)} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u3, max u2 u3, u4, max (succ u2) (succ u3)} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.cones.{u1, u3, u2, u4} J _inst_3 C _inst_1)) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u5, u4} J _inst_3 D _inst_2 C _inst_1 K G)))
+Case conversion may be inaccurate. Consider using '#align category_theory.adjunction.cones_iso CategoryTheory.Adjunction.conesIsoₓ'. -/
 -- Note: this is natural in K, but we do not yet have the tools to formulate that.
 /-- When `F ⊣ G`,
 the functor associating to each `X` the cones over `K` with cone point `F.op.obj X`
Diff
@@ -72,7 +72,7 @@ Auxiliary definition for `functoriality_is_left_adjoint`.
 -/
 @[simps]
 def functorialityUnit : 𝟭 (Cocone K) ⟶ Cocones.functoriality _ F ⋙ functorialityRightAdjoint adj K
-    where app c := { Hom := adj.Unit.app c.x }
+    where app c := { Hom := adj.Unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit CategoryTheory.Adjunction.functorialityUnit
 
 /-- The counit for the adjunction for `cocones.functoriality K F : cocone K ⥤ cocone (K ⋙ F)`.
@@ -82,7 +82,7 @@ Auxiliary definition for `functoriality_is_left_adjoint`.
 @[simps]
 def functorialityCounit :
     functorialityRightAdjoint adj K ⋙ Cocones.functoriality _ F ⟶ 𝟭 (Cocone (K ⋙ F))
-    where app c := { Hom := adj.counit.app c.x }
+    where app c := { Hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit CategoryTheory.Adjunction.functorialityCounit
 
 /-- The functor `cocones.functoriality K F : cocone K ⥤ cocone (K ⋙ F)` is a left adjoint. -/
@@ -153,13 +153,13 @@ example (E : C ⥤ D) [IsEquivalence E] (c : Cocone K) (h : IsColimit c) :
 theorem hasColimit_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit K] :
     HasColimit (K ⋙ E) :=
   HasColimit.mk
-    { Cocone := E.mapCocone (Colimit.cocone K)
+    { Cocone := E.mapCocone (colimit.cocone K)
       IsColimit := PreservesColimit.preserves (colimit.isColimit K) }
 #align category_theory.adjunction.has_colimit_comp_equivalence CategoryTheory.Adjunction.hasColimit_comp_equivalence
 
 theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit (K ⋙ E)] :
     HasColimit K :=
-  @hasColimit_of_iso _ _ _ _ (K ⋙ E ⋙ inv E) K
+  @hasColimitOfIso _ _ _ _ (K ⋙ E ⋙ inv E) K
     (@hasColimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
     ((Functor.rightUnitor _).symm ≪≫ isoWhiskerLeft K E.asEquivalence.unitIso)
 #align category_theory.adjunction.has_colimit_of_comp_equivalence CategoryTheory.Adjunction.hasColimit_of_comp_equivalence
@@ -199,7 +199,7 @@ Auxiliary definition for `functoriality_is_right_adjoint`.
 -/
 @[simps]
 def functorialityUnit' : 𝟭 (Cone (K ⋙ G)) ⟶ functorialityLeftAdjoint adj K ⋙ Cones.functoriality _ G
-    where app c := { Hom := adj.Unit.app c.x }
+    where app c := { Hom := adj.Unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit' CategoryTheory.Adjunction.functorialityUnit'
 
 /-- The counit for the adjunction for`cones.functoriality K G : cone K ⥤ cone (K ⋙ G)`.
@@ -208,7 +208,7 @@ Auxiliary definition for `functoriality_is_right_adjoint`.
 -/
 @[simps]
 def functorialityCounit' : Cones.functoriality _ G ⋙ functorialityLeftAdjoint adj K ⟶ 𝟭 (Cone K)
-    where app c := { Hom := adj.counit.app c.x }
+    where app c := { Hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit' CategoryTheory.Adjunction.functorialityCounit'
 
 /-- The functor `cones.functoriality K G : cone K ⥤ cone (K ⋙ G)` is a right adjoint. -/
@@ -276,13 +276,13 @@ example (E : D ⥤ C) [IsEquivalence E] (c : Cone K) [h : IsLimit c] : IsLimit (
 
 theorem hasLimit_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit K] : HasLimit (K ⋙ E) :=
   HasLimit.mk
-    { Cone := E.mapCone (Limit.cone K)
+    { Cone := E.mapCone (limit.cone K)
       IsLimit := PreservesLimit.preserves (limit.isLimit K) }
 #align category_theory.adjunction.has_limit_comp_equivalence CategoryTheory.Adjunction.hasLimit_comp_equivalence
 
 theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit (K ⋙ E)] :
     HasLimit K :=
-  @hasLimit_of_iso _ _ _ _ (K ⋙ E ⋙ inv E) K
+  @hasLimitOfIso _ _ _ _ (K ⋙ E ⋙ inv E) K
     (@hasLimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
     (isoWhiskerLeft K E.asEquivalence.unitIso.symm ≪≫ Functor.rightUnitor _)
 #align category_theory.adjunction.has_limit_of_comp_equivalence CategoryTheory.Adjunction.hasLimit_of_comp_equivalence
Diff
@@ -150,31 +150,31 @@ example (E : C ⥤ D) [IsEquivalence E] (c : Cocone K) (h : IsColimit c) :
     IsColimit (E.mapCocone c) :=
   PreservesColimit.preserves h
 
-theorem hasColimitCompEquivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit K] :
+theorem hasColimit_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit K] :
     HasColimit (K ⋙ E) :=
   HasColimit.mk
     { Cocone := E.mapCocone (Colimit.cocone K)
       IsColimit := PreservesColimit.preserves (colimit.isColimit K) }
-#align category_theory.adjunction.has_colimit_comp_equivalence CategoryTheory.Adjunction.hasColimitCompEquivalence
+#align category_theory.adjunction.has_colimit_comp_equivalence CategoryTheory.Adjunction.hasColimit_comp_equivalence
 
-theorem hasColimitOfCompEquivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit (K ⋙ E)] :
+theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit (K ⋙ E)] :
     HasColimit K :=
-  @hasColimitOfIso _ _ _ _ (K ⋙ E ⋙ inv E) K
-    (@hasColimitCompEquivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
+  @hasColimit_of_iso _ _ _ _ (K ⋙ E ⋙ inv E) K
+    (@hasColimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
     ((Functor.rightUnitor _).symm ≪≫ isoWhiskerLeft K E.asEquivalence.unitIso)
-#align category_theory.adjunction.has_colimit_of_comp_equivalence CategoryTheory.Adjunction.hasColimitOfCompEquivalence
+#align category_theory.adjunction.has_colimit_of_comp_equivalence CategoryTheory.Adjunction.hasColimit_of_comp_equivalence
 
 /-- Transport a `has_colimits_of_shape` instance across an equivalence. -/
-theorem hasColimitsOfShapeOfEquivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfShape J D] :
+theorem hasColimitsOfShape_of_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfShape J D] :
     HasColimitsOfShape J C :=
   ⟨fun F => has_colimit_of_comp_equivalence F E⟩
-#align category_theory.adjunction.has_colimits_of_shape_of_equivalence CategoryTheory.Adjunction.hasColimitsOfShapeOfEquivalence
+#align category_theory.adjunction.has_colimits_of_shape_of_equivalence CategoryTheory.Adjunction.hasColimitsOfShape_of_equivalence
 
 /-- Transport a `has_colimits` instance across an equivalence. -/
-theorem hasColimitsOfEquivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfSize.{v, u} D] :
+theorem has_colimits_of_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfSize.{v, u} D] :
     HasColimitsOfSize.{v, u} C :=
   ⟨fun J hJ => has_colimits_of_shape_of_equivalence E⟩
-#align category_theory.adjunction.has_colimits_of_equivalence CategoryTheory.Adjunction.hasColimitsOfEquivalence
+#align category_theory.adjunction.has_colimits_of_equivalence CategoryTheory.Adjunction.has_colimits_of_equivalence
 
 end PreservationColimits
 
@@ -274,29 +274,30 @@ instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [IsEquivalen
 example (E : D ⥤ C) [IsEquivalence E] (c : Cone K) [h : IsLimit c] : IsLimit (E.mapCone c) :=
   PreservesLimit.preserves h
 
-theorem hasLimitCompEquivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit K] : HasLimit (K ⋙ E) :=
+theorem hasLimit_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit K] : HasLimit (K ⋙ E) :=
   HasLimit.mk
     { Cone := E.mapCone (Limit.cone K)
       IsLimit := PreservesLimit.preserves (limit.isLimit K) }
-#align category_theory.adjunction.has_limit_comp_equivalence CategoryTheory.Adjunction.hasLimitCompEquivalence
+#align category_theory.adjunction.has_limit_comp_equivalence CategoryTheory.Adjunction.hasLimit_comp_equivalence
 
-theorem hasLimitOfCompEquivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit (K ⋙ E)] : HasLimit K :=
-  @hasLimitOfIso _ _ _ _ (K ⋙ E ⋙ inv E) K
-    (@hasLimitCompEquivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
+theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit (K ⋙ E)] :
+    HasLimit K :=
+  @hasLimit_of_iso _ _ _ _ (K ⋙ E ⋙ inv E) K
+    (@hasLimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) (inv E) _ _)
     (isoWhiskerLeft K E.asEquivalence.unitIso.symm ≪≫ Functor.rightUnitor _)
-#align category_theory.adjunction.has_limit_of_comp_equivalence CategoryTheory.Adjunction.hasLimitOfCompEquivalence
+#align category_theory.adjunction.has_limit_of_comp_equivalence CategoryTheory.Adjunction.hasLimit_of_comp_equivalence
 
 /-- Transport a `has_limits_of_shape` instance across an equivalence. -/
-theorem hasLimitsOfShapeOfEquivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfShape J C] :
+theorem hasLimitsOfShape_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfShape J C] :
     HasLimitsOfShape J D :=
   ⟨fun F => has_limit_of_comp_equivalence F E⟩
-#align category_theory.adjunction.has_limits_of_shape_of_equivalence CategoryTheory.Adjunction.hasLimitsOfShapeOfEquivalence
+#align category_theory.adjunction.has_limits_of_shape_of_equivalence CategoryTheory.Adjunction.hasLimitsOfShape_of_equivalence
 
 /-- Transport a `has_limits` instance across an equivalence. -/
-theorem hasLimitsOfEquivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfSize.{v, u} C] :
+theorem has_limits_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfSize.{v, u} C] :
     HasLimitsOfSize.{v, u} D :=
   ⟨fun J hJ => has_limits_of_shape_of_equivalence E⟩
-#align category_theory.adjunction.has_limits_of_equivalence CategoryTheory.Adjunction.hasLimitsOfEquivalence
+#align category_theory.adjunction.has_limits_of_equivalence CategoryTheory.Adjunction.has_limits_of_equivalence
 
 end PreservationLimits
 

Changes in mathlib4

mathlib3
mathlib4
chore(CategoryTheory): make Functor.Full a Prop (#12449)

Before this PR, Functor.Full contained the data of the preimage of maps by a full functor F. This PR makes Functor.Full a proposition. This is to prevent any diamond to appear.

The lemma Functor.image_preimage is also renamed Functor.map_preimage.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -115,7 +115,8 @@ instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [E.IsEqui
 #align category_theory.adjunction.is_equivalence_reflects_colimits CategoryTheory.Adjunction.isEquivalenceReflectsColimits
 
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [H.IsEquivalence] :
+noncomputable instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C)
+    [H.IsEquivalence] :
     CreatesColimitsOfSize.{v, u} H where
   CreatesColimitsOfShape :=
     { CreatesColimit :=
@@ -229,7 +230,7 @@ instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [E.IsEquiva
 #align category_theory.adjunction.is_equivalence_reflects_limits CategoryTheory.Adjunction.isEquivalenceReflectsLimits
 
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [H.IsEquivalence] :
+noncomputable instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [H.IsEquivalence] :
     CreatesLimitsOfSize.{v, u} H where
   CreatesLimitsOfShape :=
     { CreatesLimit :=
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

These notions on functors are now Functor.Full, Functor.Faithful, Functor.EssSurj, Functor.IsEquivalence, Functor.ReflectsIsomorphisms. Deprecated aliases are introduced for the previous names.

Diff
@@ -100,13 +100,13 @@ def leftAdjointPreservesColimits : PreservesColimitsOfSize.{v, u} F where
 #align category_theory.adjunction.left_adjoint_preserves_colimits CategoryTheory.Adjunction.leftAdjointPreservesColimits
 
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalencePreservesColimits (E : C ⥤ D) [IsEquivalence E] :
+instance (priority := 100) isEquivalencePreservesColimits (E : C ⥤ D) [E.IsEquivalence] :
     PreservesColimitsOfSize.{v, u} E :=
   leftAdjointPreservesColimits E.adjunction
 #align category_theory.adjunction.is_equivalence_preserves_colimits CategoryTheory.Adjunction.isEquivalencePreservesColimits
 
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [IsEquivalence E] :
+instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [E.IsEquivalence] :
     ReflectsColimitsOfSize.{v, u} E where
   reflectsColimitsOfShape :=
     { reflectsColimit :=
@@ -115,7 +115,7 @@ instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [IsEquiva
 #align category_theory.adjunction.is_equivalence_reflects_colimits CategoryTheory.Adjunction.isEquivalenceReflectsColimits
 
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [IsEquivalence H] :
+instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [H.IsEquivalence] :
     CreatesColimitsOfSize.{v, u} H where
   CreatesColimitsOfShape :=
     { CreatesColimit :=
@@ -125,18 +125,18 @@ instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [IsEquival
 #align category_theory.adjunction.is_equivalence_creates_colimits CategoryTheory.Adjunction.isEquivalenceCreatesColimits
 
 -- verify the preserve_colimits instance works as expected:
-example (E : C ⥤ D) [IsEquivalence E] (c : Cocone K) (h : IsColimit c) :
+example (E : C ⥤ D) [E.IsEquivalence] (c : Cocone K) (h : IsColimit c) :
     IsColimit (E.mapCocone c) :=
   PreservesColimit.preserves h
 
-theorem hasColimit_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit K] :
+theorem hasColimit_comp_equivalence (E : C ⥤ D) [E.IsEquivalence] [HasColimit K] :
     HasColimit (K ⋙ E) :=
   HasColimit.mk
     { cocone := E.mapCocone (colimit.cocone K)
       isColimit := PreservesColimit.preserves (colimit.isColimit K) }
 #align category_theory.adjunction.has_colimit_comp_equivalence CategoryTheory.Adjunction.hasColimit_comp_equivalence
 
-theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit (K ⋙ E)] :
+theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [E.IsEquivalence] [HasColimit (K ⋙ E)] :
     HasColimit K :=
   @hasColimitOfIso _ _ _ _ (K ⋙ E ⋙ E.inv) K
     (@hasColimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) E.inv _ _)
@@ -144,13 +144,13 @@ theorem hasColimit_of_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColim
 #align category_theory.adjunction.has_colimit_of_comp_equivalence CategoryTheory.Adjunction.hasColimit_of_comp_equivalence
 
 /-- Transport a `HasColimitsOfShape` instance across an equivalence. -/
-theorem hasColimitsOfShape_of_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfShape J D] :
+theorem hasColimitsOfShape_of_equivalence (E : C ⥤ D) [E.IsEquivalence] [HasColimitsOfShape J D] :
     HasColimitsOfShape J C :=
   ⟨fun F => hasColimit_of_comp_equivalence F E⟩
 #align category_theory.adjunction.has_colimits_of_shape_of_equivalence CategoryTheory.Adjunction.hasColimitsOfShape_of_equivalence
 
 /-- Transport a `HasColimitsOfSize` instance across an equivalence. -/
-theorem has_colimits_of_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimitsOfSize.{v, u} D] :
+theorem has_colimits_of_equivalence (E : C ⥤ D) [E.IsEquivalence] [HasColimitsOfSize.{v, u} D] :
     HasColimitsOfSize.{v, u} C :=
   ⟨fun _ _ => hasColimitsOfShape_of_equivalence E⟩
 #align category_theory.adjunction.has_colimits_of_equivalence CategoryTheory.Adjunction.has_colimits_of_equivalence
@@ -214,13 +214,13 @@ def rightAdjointPreservesLimits : PreservesLimitsOfSize.{v, u} G where
 #align category_theory.adjunction.right_adjoint_preserves_limits CategoryTheory.Adjunction.rightAdjointPreservesLimits
 
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalencePreservesLimits (E : D ⥤ C) [IsEquivalence E] :
+instance (priority := 100) isEquivalencePreservesLimits (E : D ⥤ C) [E.IsEquivalence] :
     PreservesLimitsOfSize.{v, u} E :=
   rightAdjointPreservesLimits E.inv.adjunction
 #align category_theory.adjunction.is_equivalence_preserves_limits CategoryTheory.Adjunction.isEquivalencePreservesLimits
 
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [IsEquivalence E] :
+instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [E.IsEquivalence] :
     ReflectsLimitsOfSize.{v, u} E where
   reflectsLimitsOfShape :=
     { reflectsLimit :=
@@ -229,7 +229,7 @@ instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [IsEquivale
 #align category_theory.adjunction.is_equivalence_reflects_limits CategoryTheory.Adjunction.isEquivalenceReflectsLimits
 
 -- see Note [lower instance priority]
-instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [IsEquivalence H] :
+instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [H.IsEquivalence] :
     CreatesLimitsOfSize.{v, u} H where
   CreatesLimitsOfShape :=
     { CreatesLimit :=
@@ -239,16 +239,16 @@ instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [IsEquivalen
 #align category_theory.adjunction.is_equivalence_creates_limits CategoryTheory.Adjunction.isEquivalenceCreatesLimits
 
 -- verify the preserve_limits instance works as expected:
-example (E : D ⥤ C) [IsEquivalence E] (c : Cone K) (h : IsLimit c) : IsLimit (E.mapCone c) :=
+example (E : D ⥤ C) [E.IsEquivalence] (c : Cone K) (h : IsLimit c) : IsLimit (E.mapCone c) :=
   PreservesLimit.preserves h
 
-theorem hasLimit_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit K] : HasLimit (K ⋙ E) :=
+theorem hasLimit_comp_equivalence (E : D ⥤ C) [E.IsEquivalence] [HasLimit K] : HasLimit (K ⋙ E) :=
   HasLimit.mk
     { cone := E.mapCone (limit.cone K)
       isLimit := PreservesLimit.preserves (limit.isLimit K) }
 #align category_theory.adjunction.has_limit_comp_equivalence CategoryTheory.Adjunction.hasLimit_comp_equivalence
 
-theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit (K ⋙ E)] :
+theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [E.IsEquivalence] [HasLimit (K ⋙ E)] :
     HasLimit K :=
   @hasLimitOfIso _ _ _ _ (K ⋙ E ⋙ E.inv) K
     (@hasLimit_comp_equivalence _ _ _ _ _ _ (K ⋙ E) E.inv _ _)
@@ -256,13 +256,13 @@ theorem hasLimit_of_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit (
 #align category_theory.adjunction.has_limit_of_comp_equivalence CategoryTheory.Adjunction.hasLimit_of_comp_equivalence
 
 /-- Transport a `HasLimitsOfShape` instance across an equivalence. -/
-theorem hasLimitsOfShape_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfShape J C] :
+theorem hasLimitsOfShape_of_equivalence (E : D ⥤ C) [E.IsEquivalence] [HasLimitsOfShape J C] :
     HasLimitsOfShape J D :=
   ⟨fun F => hasLimit_of_comp_equivalence F E⟩
 #align category_theory.adjunction.has_limits_of_shape_of_equivalence CategoryTheory.Adjunction.hasLimitsOfShape_of_equivalence
 
 /-- Transport a `HasLimitsOfSize` instance across an equivalence. -/
-theorem has_limits_of_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimitsOfSize.{v, u} C] :
+theorem has_limits_of_equivalence (E : D ⥤ C) [E.IsEquivalence] [HasLimitsOfSize.{v, u} C] :
     HasLimitsOfSize.{v, u} D :=
   ⟨fun _ _ => hasLimitsOfShape_of_equivalence E⟩
 #align category_theory.adjunction.has_limits_of_equivalence CategoryTheory.Adjunction.has_limits_of_equivalence
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
@@ -41,7 +41,6 @@ universe v u v₁ v₂ v₀ u₁ u₂
 section ArbitraryUniverse
 
 variable {C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]
-
 variable {F : C ⥤ D} {G : D ⥤ C} (adj : F ⊣ G)
 
 section PreservationColimits
feat(CategoryTheory): PreservesLimits instances for adjoint functors (#9990)

This PR adds PreservesColimits/PreservesLimits instances for adjoint functors.

Co-authored-by: Markus Himmel <markus@himmel-villmar.de>

Diff
@@ -30,13 +30,11 @@ the functor associating to each `Y` the cocones over `K` with cone point `G.obj
 
 open Opposite
 
-namespace CategoryTheory.Adjunction
+namespace CategoryTheory
 
-open CategoryTheory
+open Functor Limits
 
-open CategoryTheory.Functor
-
-open CategoryTheory.Limits
+namespace Adjunction
 
 universe v u v₁ v₂ v₀ u₁ u₂
 
@@ -343,4 +341,23 @@ def conesIso {J : Type u} [Category.{v} J] {K : J ⥤ D} :
       inv := conesIsoComponentInv adj X }
 #align category_theory.adjunction.cones_iso CategoryTheory.Adjunction.conesIso
 
-end CategoryTheory.Adjunction
+end Adjunction
+
+namespace Functor
+
+variable {J C D : Type*} [Category J] [Category C] [Category D]
+  (F : C ⥤ D)
+
+instance [IsLeftAdjoint F] : PreservesColimitsOfShape J F :=
+  (Adjunction.ofLeftAdjoint F).leftAdjointPreservesColimits.preservesColimitsOfShape
+
+instance [IsLeftAdjoint F] : PreservesColimits F where
+
+instance [IsRightAdjoint F] : PreservesLimitsOfShape J F :=
+  (Adjunction.ofRightAdjoint F).rightAdjointPreservesLimits.preservesLimitsOfShape
+
+instance [IsRightAdjoint F] : PreservesLimits F where
+
+end Functor
+
+end CategoryTheory
chore: exactly 4 spaces in subsequent lines for def (#7321)

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

Diff
@@ -67,8 +67,8 @@ Auxiliary definition for `functorialityIsLeftAdjoint`.
 -/
 @[simps]
 def functorialityUnit :
-  𝟭 (Cocone K) ⟶ Cocones.functoriality _ F ⋙ functorialityRightAdjoint adj K where
-    app c := { hom := adj.unit.app c.pt }
+    𝟭 (Cocone K) ⟶ Cocones.functoriality _ F ⋙ functorialityRightAdjoint adj K where
+  app c := { hom := adj.unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit CategoryTheory.Adjunction.functorialityUnit
 
 /-- The counit for the adjunction for `Cocones.functoriality K F : Cocone K ⥤ Cocone (K ⋙ F)`.
@@ -77,8 +77,8 @@ Auxiliary definition for `functorialityIsLeftAdjoint`.
 -/
 @[simps]
 def functorialityCounit :
-  functorialityRightAdjoint adj K ⋙ Cocones.functoriality _ F ⟶ 𝟭 (Cocone (K ⋙ F)) where
-    app c := { hom := adj.counit.app c.pt }
+    functorialityRightAdjoint adj K ⋙ Cocones.functoriality _ F ⟶ 𝟭 (Cocone (K ⋙ F)) where
+  app c := { hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit CategoryTheory.Adjunction.functorialityCounit
 
 /-- The functor `Cocones.functoriality K F : Cocone K ⥤ Cocone (K ⋙ F)` is a left adjoint. -/
@@ -181,8 +181,8 @@ Auxiliary definition for `functorialityIsRightAdjoint`.
 -/
 @[simps]
 def functorialityUnit' :
-  𝟭 (Cone (K ⋙ G)) ⟶ functorialityLeftAdjoint adj K ⋙ Cones.functoriality _ G where
-    app c := { hom := adj.unit.app c.pt }
+    𝟭 (Cone (K ⋙ G)) ⟶ functorialityLeftAdjoint adj K ⋙ Cones.functoriality _ G where
+  app c := { hom := adj.unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit' CategoryTheory.Adjunction.functorialityUnit'
 
 /-- The counit for the adjunction for `Cones.functoriality K G : Cone K ⥤ Cone (K ⋙ G)`.
@@ -191,8 +191,8 @@ Auxiliary definition for `functorialityIsRightAdjoint`.
 -/
 @[simps]
 def functorialityCounit' :
-  Cones.functoriality _ G ⋙ functorialityLeftAdjoint adj K ⟶ 𝟭 (Cone K) where
-    app c := { hom := adj.counit.app c.pt }
+    Cones.functoriality _ G ⋙ functorialityLeftAdjoint adj K ⟶ 𝟭 (Cone K) where
+  app c := { hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit' CategoryTheory.Adjunction.functorialityCounit'
 
 /-- The functor `Cones.functoriality K G : Cone K ⥤ Cone (K ⋙ G)` is a right adjoint. -/
chore: replace ConeMorphism.Hom by ConeMorphism.hom (#7176)
Diff
@@ -68,7 +68,7 @@ Auxiliary definition for `functorialityIsLeftAdjoint`.
 @[simps]
 def functorialityUnit :
   𝟭 (Cocone K) ⟶ Cocones.functoriality _ F ⋙ functorialityRightAdjoint adj K where
-    app c := { Hom := adj.unit.app c.pt }
+    app c := { hom := adj.unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit CategoryTheory.Adjunction.functorialityUnit
 
 /-- The counit for the adjunction for `Cocones.functoriality K F : Cocone K ⥤ Cocone (K ⋙ F)`.
@@ -78,7 +78,7 @@ Auxiliary definition for `functorialityIsLeftAdjoint`.
 @[simps]
 def functorialityCounit :
   functorialityRightAdjoint adj K ⋙ Cocones.functoriality _ F ⟶ 𝟭 (Cocone (K ⋙ F)) where
-    app c := { Hom := adj.counit.app c.pt }
+    app c := { hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit CategoryTheory.Adjunction.functorialityCounit
 
 /-- The functor `Cocones.functoriality K F : Cocone K ⥤ Cocone (K ⋙ F)` is a left adjoint. -/
@@ -182,7 +182,7 @@ Auxiliary definition for `functorialityIsRightAdjoint`.
 @[simps]
 def functorialityUnit' :
   𝟭 (Cone (K ⋙ G)) ⟶ functorialityLeftAdjoint adj K ⋙ Cones.functoriality _ G where
-    app c := { Hom := adj.unit.app c.pt }
+    app c := { hom := adj.unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit' CategoryTheory.Adjunction.functorialityUnit'
 
 /-- The counit for the adjunction for `Cones.functoriality K G : Cone K ⥤ Cone (K ⋙ G)`.
@@ -192,7 +192,7 @@ Auxiliary definition for `functorialityIsRightAdjoint`.
 @[simps]
 def functorialityCounit' :
   Cones.functoriality _ G ⋙ functorialityLeftAdjoint adj K ⟶ 𝟭 (Cone K) where
-    app c := { Hom := adj.counit.app c.pt }
+    app c := { hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit' CategoryTheory.Adjunction.functorialityCounit'
 
 /-- The functor `Cones.functoriality K G : Cone K ⥤ Cone (K ⋙ G)` is a right adjoint. -/
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,15 +2,12 @@
 Copyright (c) 2019 Reid Barton. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Reid Barton, Johan Commelin
-
-! This file was ported from Lean 3 source module category_theory.adjunction.limits
-! leanprover-community/mathlib commit 9e7c80f638149bfb3504ba8ff48dfdbfc949fb1a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Adjunction.Basic
 import Mathlib.CategoryTheory.Limits.Creates
 
+#align_import category_theory.adjunction.limits from "leanprover-community/mathlib"@"9e7c80f638149bfb3504ba8ff48dfdbfc949fb1a"
+
 /-!
 # Adjunctions and limits
 
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
@@ -62,8 +62,7 @@ def functorialityRightAdjoint : Cocone (K ⋙ F) ⥤ Cocone K :=
     Cocones.precompose (K.rightUnitor.inv ≫ whiskerLeft K adj.unit ≫ (associator _ _ _).inv)
 #align category_theory.adjunction.functoriality_right_adjoint CategoryTheory.Adjunction.functorialityRightAdjoint
 
--- porting note: used dsimp in order to unfold the definition when necessary
--- attribute [local reducible] functorialityRightAdjoint
+attribute [local simp] functorialityRightAdjoint
 
 /-- The unit for the adjunction for `Cocones.functoriality K F : Cocone K ⥤ Cocone (K ⋙ F)`.
 
@@ -72,14 +71,7 @@ Auxiliary definition for `functorialityIsLeftAdjoint`.
 @[simps]
 def functorialityUnit :
   𝟭 (Cocone K) ⟶ Cocones.functoriality _ F ⋙ functorialityRightAdjoint adj K where
-    app c :=
-      { Hom := adj.unit.app c.pt
-        w := fun j => by
-          dsimp [functorialityRightAdjoint]
-          simp }
-    naturality := fun X Y f => by
-      dsimp [functorialityRightAdjoint]
-      aesop_cat
+    app c := { Hom := adj.unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit CategoryTheory.Adjunction.functorialityUnit
 
 /-- The counit for the adjunction for `Cocones.functoriality K F : Cocone K ⥤ Cocone (K ⋙ F)`.
@@ -89,38 +81,23 @@ Auxiliary definition for `functorialityIsLeftAdjoint`.
 @[simps]
 def functorialityCounit :
   functorialityRightAdjoint adj K ⋙ Cocones.functoriality _ F ⟶ 𝟭 (Cocone (K ⋙ F)) where
-    app c :=
-      { Hom := adj.counit.app c.pt
-        w := fun j => by
-          dsimp [functorialityRightAdjoint]
-          aesop_cat }
-    naturality := fun X Y f => by
-      dsimp [functorialityRightAdjoint]
-      aesop_cat
+    app c := { Hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit CategoryTheory.Adjunction.functorialityCounit
 
 /-- The functor `Cocones.functoriality K F : Cocone K ⥤ Cocone (K ⋙ F)` is a left adjoint. -/
-def functorialityIsLeftAdjoint : IsLeftAdjoint (Cocones.functoriality K F)
-    where
+def functorialityIsLeftAdjoint : IsLeftAdjoint (Cocones.functoriality K F) where
   right := functorialityRightAdjoint adj K
-  adj :=
-    mkOfUnitCounit
-      { unit := functorialityUnit adj K
-        counit := functorialityCounit adj K
-        right_triangle := by
-          dsimp [functorialityRightAdjoint]
-          aesop_cat
-        left_triangle := by
-          dsimp [functorialityRightAdjoint]
-          aesop_cat }
+  adj := mkOfUnitCounit
+    { unit := functorialityUnit adj K
+      counit := functorialityCounit adj K }
 #align category_theory.adjunction.functoriality_is_left_adjoint CategoryTheory.Adjunction.functorialityIsLeftAdjoint
 
 /-- A left adjoint preserves colimits.
 
 See <https://stacks.math.columbia.edu/tag/0038>.
 -/
-def leftAdjointPreservesColimits : PreservesColimitsOfSize.{v, u} F
-    where preservesColimitsOfShape :=
+def leftAdjointPreservesColimits : PreservesColimitsOfSize.{v, u} F where
+  preservesColimitsOfShape :=
     { preservesColimit :=
         { preserves := fun hc =>
             IsColimit.isoUniqueCoconeMorphism.inv fun _ =>
@@ -136,8 +113,8 @@ instance (priority := 100) isEquivalencePreservesColimits (E : C ⥤ D) [IsEquiv
 
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalenceReflectsColimits (E : D ⥤ C) [IsEquivalence E] :
-    ReflectsColimitsOfSize.{v, u} E
-    where reflectsColimitsOfShape :=
+    ReflectsColimitsOfSize.{v, u} E where
+  reflectsColimitsOfShape :=
     { reflectsColimit :=
         { reflects := fun t =>
           (isColimitOfPreserves E.inv t).mapCoconeEquiv E.asEquivalence.unitIso.symm } }
@@ -199,8 +176,7 @@ def functorialityLeftAdjoint : Cone (K ⋙ G) ⥤ Cone K :=
     Cones.postcompose ((associator _ _ _).hom ≫ whiskerLeft K adj.counit ≫ K.rightUnitor.hom)
 #align category_theory.adjunction.functoriality_left_adjoint CategoryTheory.Adjunction.functorialityLeftAdjoint
 
--- porting note: used dsimp in order to unfold the definition when necessary
--- attribute [local reducible] functoriality_left_adjoint
+attribute [local simp] functorialityLeftAdjoint
 
 /-- The unit for the adjunction for `Cones.functoriality K G : Cone K ⥤ Cone (K ⋙ G)`.
 
@@ -209,14 +185,7 @@ Auxiliary definition for `functorialityIsRightAdjoint`.
 @[simps]
 def functorialityUnit' :
   𝟭 (Cone (K ⋙ G)) ⟶ functorialityLeftAdjoint adj K ⋙ Cones.functoriality _ G where
-    app c :=
-      { Hom := adj.unit.app c.pt
-        w := fun j => by
-          dsimp [functorialityLeftAdjoint]
-          simp }
-    naturality := fun X Y f => by
-      dsimp [functorialityLeftAdjoint]
-      aesop_cat
+    app c := { Hom := adj.unit.app c.pt }
 #align category_theory.adjunction.functoriality_unit' CategoryTheory.Adjunction.functorialityUnit'
 
 /-- The counit for the adjunction for `Cones.functoriality K G : Cone K ⥤ Cone (K ⋙ G)`.
@@ -226,38 +195,23 @@ Auxiliary definition for `functorialityIsRightAdjoint`.
 @[simps]
 def functorialityCounit' :
   Cones.functoriality _ G ⋙ functorialityLeftAdjoint adj K ⟶ 𝟭 (Cone K) where
-    app c :=
-      { Hom := adj.counit.app c.pt
-        w := fun j => by
-          dsimp [functorialityLeftAdjoint]
-          aesop_cat }
-    naturality := fun X Y f => by
-      dsimp [functorialityLeftAdjoint]
-      aesop_cat
+    app c := { Hom := adj.counit.app c.pt }
 #align category_theory.adjunction.functoriality_counit' CategoryTheory.Adjunction.functorialityCounit'
 
 /-- The functor `Cones.functoriality K G : Cone K ⥤ Cone (K ⋙ G)` is a right adjoint. -/
-def functorialityIsRightAdjoint : IsRightAdjoint (Cones.functoriality K G)
-    where
+def functorialityIsRightAdjoint : IsRightAdjoint (Cones.functoriality K G) where
   left := functorialityLeftAdjoint adj K
-  adj :=
-    mkOfUnitCounit
-      { unit := functorialityUnit' adj K
-        counit := functorialityCounit' adj K
-        right_triangle := by
-          dsimp [functorialityLeftAdjoint]
-          aesop_cat
-        left_triangle := by
-          dsimp [functorialityLeftAdjoint]
-          aesop_cat }
+  adj := mkOfUnitCounit
+    { unit := functorialityUnit' adj K
+      counit := functorialityCounit' adj K }
 #align category_theory.adjunction.functoriality_is_right_adjoint CategoryTheory.Adjunction.functorialityIsRightAdjoint
 
 /-- A right adjoint preserves limits.
 
 See <https://stacks.math.columbia.edu/tag/0038>.
 -/
-def rightAdjointPreservesLimits : PreservesLimitsOfSize.{v, u} G
-    where preservesLimitsOfShape :=
+def rightAdjointPreservesLimits : PreservesLimitsOfSize.{v, u} G where
+  preservesLimitsOfShape :=
     { preservesLimit :=
         { preserves := fun hc =>
             IsLimit.isoUniqueConeMorphism.inv fun _ =>
@@ -273,8 +227,8 @@ instance (priority := 100) isEquivalencePreservesLimits (E : D ⥤ C) [IsEquival
 
 -- see Note [lower instance priority]
 instance (priority := 100) isEquivalenceReflectsLimits (E : D ⥤ C) [IsEquivalence E] :
-    ReflectsLimitsOfSize.{v, u} E
-    where reflectsLimitsOfShape :=
+    ReflectsLimitsOfSize.{v, u} E where
+  reflectsLimitsOfShape :=
     { reflectsLimit :=
         { reflects := fun t =>
             (isLimitOfPreserves E.inv t).mapConeEquiv E.asEquivalence.unitIso.symm } }
@@ -324,8 +278,7 @@ end PreservationLimits
 /-- auxiliary construction for `coconesIso` -/
 @[simp]
 def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
-    (t : ((cocones J D).obj (op (K ⋙ F))).obj Y) : (G ⋙ (cocones J C).obj (op K)).obj Y
-    where
+    (t : ((cocones J D).obj (op (K ⋙ F))).obj Y) : (G ⋙ (cocones J C).obj (op K)).obj Y where
   app j := (adj.homEquiv (K.obj j) Y) (t.app j)
   naturality j j' f := by
     erw [← adj.homEquiv_naturality_left, t.naturality]
@@ -336,8 +289,7 @@ def coconesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
 /-- auxiliary construction for `coconesIso` -/
 @[simp]
 def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
-    (t : (G ⋙ (cocones J C).obj (op K)).obj Y) : ((cocones J D).obj (op (K ⋙ F))).obj Y
-    where
+    (t : (G ⋙ (cocones J C).obj (op K)).obj Y) : ((cocones J D).obj (op (K ⋙ F))).obj Y where
   app j := (adj.homEquiv (K.obj j) Y).symm (t.app j)
   naturality j j' f := by
     erw [← adj.homEquiv_naturality_left_symm, ← adj.homEquiv_naturality_right_symm, t.naturality]
@@ -347,8 +299,7 @@ def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
 /-- auxiliary construction for `conesIso` -/
 @[simp]
 def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒᵖ)
-    (t : (Functor.op F ⋙ (cones J D).obj K).obj X) : ((cones J C).obj (K ⋙ G)).obj X
-    where
+    (t : (Functor.op F ⋙ (cones J D).obj K).obj X) : ((cones J C).obj (K ⋙ G)).obj X where
   app j := (adj.homEquiv (unop X) (K.obj j)) (t.app j)
   naturality j j' f := by
     erw [← adj.homEquiv_naturality_right, ← t.naturality, Category.id_comp, Category.id_comp]
@@ -358,8 +309,7 @@ def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒ
 /-- auxiliary construction for `conesIso` -/
 @[simp]
 def conesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒᵖ)
-    (t : ((cones J C).obj (K ⋙ G)).obj X) : (Functor.op F ⋙ (cones J D).obj K).obj X
-    where
+    (t : ((cones J C).obj (K ⋙ G)).obj X) : (Functor.op F ⋙ (cones J D).obj K).obj X where
   app j := (adj.homEquiv (unop X) (K.obj j)).symm (t.app j)
   naturality j j' f := by
     erw [← adj.homEquiv_naturality_right_symm, ← t.naturality, Category.id_comp, Category.id_comp]
@@ -378,20 +328,9 @@ the functor associating to each `Y` the cocones over `K` with cone point `G.obj
 -/
 def coconesIso {J : Type u} [Category.{v} J] {K : J ⥤ C} :
     (cocones J D).obj (op (K ⋙ F)) ≅ G ⋙ (cocones J C).obj (op K) :=
-  NatIso.ofComponents
-    (fun Y =>
-      { hom := coconesIsoComponentHom adj Y
-        inv := coconesIsoComponentInv adj Y
-        hom_inv_id := by
-          funext
-          aesop_cat
-        inv_hom_id := by
-          funext
-          simp
-          rfl })
-    (fun f => by
-      funext
-      aesop_cat)
+  NatIso.ofComponents fun Y =>
+    { hom := coconesIsoComponentHom adj Y
+      inv := coconesIsoComponentInv adj Y }
 #align category_theory.adjunction.cocones_iso CategoryTheory.Adjunction.coconesIso
 
 -- Note: this is natural in K, but we do not yet have the tools to formulate that.
@@ -402,20 +341,9 @@ the functor associating to each `X` the cones over `K ⋙ G` with cone point `X`
 -/
 def conesIso {J : Type u} [Category.{v} J] {K : J ⥤ D} :
     F.op ⋙ (cones J D).obj K ≅ (cones J C).obj (K ⋙ G) :=
-  NatIso.ofComponents
-    (fun X =>
-      { hom := conesIsoComponentHom adj X
-        inv := conesIsoComponentInv adj X
-        hom_inv_id := by
-          funext
-          aesop_cat
-        inv_hom_id := by
-          funext
-          simp
-          rfl })
-    (fun f => by
-      funext
-      aesop_cat)
+  NatIso.ofComponents fun X =>
+    { hom := conesIsoComponentHom adj X
+      inv := conesIsoComponentInv adj X }
 #align category_theory.adjunction.cones_iso CategoryTheory.Adjunction.conesIso
 
 end CategoryTheory.Adjunction
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -339,8 +339,7 @@ def coconesIsoComponentInv {J : Type u} [Category.{v} J] {K : J ⥤ C} (Y : D)
     (t : (G ⋙ (cocones J C).obj (op K)).obj Y) : ((cocones J D).obj (op (K ⋙ F))).obj Y
     where
   app j := (adj.homEquiv (K.obj j) Y).symm (t.app j)
-  naturality j j' f :=
-    by
+  naturality j j' f := by
     erw [← adj.homEquiv_naturality_left_symm, ← adj.homEquiv_naturality_right_symm, t.naturality]
     dsimp; simp
 #align category_theory.adjunction.cocones_iso_component_inv CategoryTheory.Adjunction.coconesIsoComponentInv
@@ -351,8 +350,7 @@ def conesIsoComponentHom {J : Type u} [Category.{v} J] {K : J ⥤ D} (X : Cᵒ
     (t : (Functor.op F ⋙ (cones J D).obj K).obj X) : ((cones J C).obj (K ⋙ G)).obj X
     where
   app j := (adj.homEquiv (unop X) (K.obj j)) (t.app j)
-  naturality j j' f :=
-    by
+  naturality j j' f := by
     erw [← adj.homEquiv_naturality_right, ← t.naturality, Category.id_comp, Category.id_comp]
     rfl
 #align category_theory.adjunction.cones_iso_component_hom CategoryTheory.Adjunction.conesIsoComponentHom
fix: use dot notation for mapCone/mapCocone (#2696)

Thanks to #2661 we have G.mapCone back. This swiches over globally.

Diff
@@ -155,13 +155,13 @@ instance (priority := 100) isEquivalenceCreatesColimits (H : D ⥤ C) [IsEquival
 
 -- verify the preserve_colimits instance works as expected:
 example (E : C ⥤ D) [IsEquivalence E] (c : Cocone K) (h : IsColimit c) :
-    IsColimit (Functor.mapCocone E c) :=
+    IsColimit (E.mapCocone c) :=
   PreservesColimit.preserves h
 
 theorem hasColimit_comp_equivalence (E : C ⥤ D) [IsEquivalence E] [HasColimit K] :
     HasColimit (K ⋙ E) :=
   HasColimit.mk
-    { cocone := Functor.mapCocone E (colimit.cocone K)
+    { cocone := E.mapCocone (colimit.cocone K)
       isColimit := PreservesColimit.preserves (colimit.isColimit K) }
 #align category_theory.adjunction.has_colimit_comp_equivalence CategoryTheory.Adjunction.hasColimit_comp_equivalence
 
@@ -291,12 +291,12 @@ instance (priority := 100) isEquivalenceCreatesLimits (H : D ⥤ C) [IsEquivalen
 #align category_theory.adjunction.is_equivalence_creates_limits CategoryTheory.Adjunction.isEquivalenceCreatesLimits
 
 -- verify the preserve_limits instance works as expected:
-example (E : D ⥤ C) [IsEquivalence E] (c : Cone K) (h : IsLimit c) : IsLimit (mapCone E c) :=
+example (E : D ⥤ C) [IsEquivalence E] (c : Cone K) (h : IsLimit c) : IsLimit (E.mapCone c) :=
   PreservesLimit.preserves h
 
 theorem hasLimit_comp_equivalence (E : D ⥤ C) [IsEquivalence E] [HasLimit K] : HasLimit (K ⋙ E) :=
   HasLimit.mk
-    { cone := Functor.mapCone E (limit.cone K)
+    { cone := E.mapCone (limit.cone K)
       isLimit := PreservesLimit.preserves (limit.isLimit K) }
 #align category_theory.adjunction.has_limit_comp_equivalence CategoryTheory.Adjunction.hasLimit_comp_equivalence
 
feat: port CategoryTheory.Adjunction.Limits (#2683)

Dependencies 75

76 files ported (100.0%)
26954 lines ported (100.0%)

All dependencies are ported!