category_theory.limits.preserves.shapes.imagesMathlib.CategoryTheory.Limits.Preserves.Shapes.Images

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Jujian Zhang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jujian Zhang
 -/
-import Mathbin.CategoryTheory.Limits.Shapes.Images
-import Mathbin.CategoryTheory.Limits.Constructions.EpiMono
+import CategoryTheory.Limits.Shapes.Images
+import CategoryTheory.Limits.Constructions.EpiMono
 
 #align_import category_theory.limits.preserves.shapes.images from "leanprover-community/mathlib"@"10bf4f825ad729c5653adc039dafa3622e7f93c9"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Jujian Zhang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jujian Zhang
-
-! This file was ported from Lean 3 source module category_theory.limits.preserves.shapes.images
-! leanprover-community/mathlib commit 10bf4f825ad729c5653adc039dafa3622e7f93c9
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Limits.Shapes.Images
 import Mathbin.CategoryTheory.Limits.Constructions.EpiMono
 
+#align_import category_theory.limits.preserves.shapes.images from "leanprover-community/mathlib"@"10bf4f825ad729c5653adc039dafa3622e7f93c9"
+
 /-!
 # Preserving images
 
Diff
@@ -45,6 +45,7 @@ variable [∀ {X Y Z : A} (f : X ⟶ Z) (g : Y ⟶ Z), PreservesLimit (cospan f
 
 variable [∀ {X Y Z : A} (f : X ⟶ Y) (g : X ⟶ Z), PreservesColimit (span f g) L]
 
+#print CategoryTheory.PreservesImage.iso /-
 /-- If a functor preserves span and cospan, then it preserves images.
 -/
 @[simps]
@@ -58,21 +59,28 @@ def iso {X Y : A} (f : X ⟶ Y) : image (L.map f) ≅ L.obj (image f) :=
       fac := by rw [← L.map_comp, limits.image.fac] }
   IsImage.isoExt (Image.isImage (L.map f)) aux1.toMonoIsImage
 #align category_theory.preserves_image.iso CategoryTheory.PreservesImage.iso
+-/
 
+#print CategoryTheory.PreservesImage.factorThruImage_comp_hom /-
 @[reassoc]
 theorem factorThruImage_comp_hom {X Y : A} (f : X ⟶ Y) :
     factorThruImage (L.map f) ≫ (iso L f).Hom = L.map (factorThruImage f) := by simp
 #align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_hom
+-/
 
+#print CategoryTheory.PreservesImage.hom_comp_map_image_ι /-
 @[reassoc]
 theorem hom_comp_map_image_ι {X Y : A} (f : X ⟶ Y) :
     (iso L f).Hom ≫ L.map (image.ι f) = image.ι (L.map f) := by simp
 #align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ι
+-/
 
+#print CategoryTheory.PreservesImage.inv_comp_image_ι_map /-
 @[reassoc]
 theorem inv_comp_image_ι_map {X Y : A} (f : X ⟶ Y) :
     (iso L f).inv ≫ image.ι (L.map f) = L.map (image.ι f) := by simp
 #align category_theory.preserves_image.inv_comp_image_ι_map CategoryTheory.PreservesImage.inv_comp_image_ι_map
+-/
 
 end PreservesImage
 
Diff
@@ -45,12 +45,6 @@ variable [∀ {X Y Z : A} (f : X ⟶ Z) (g : Y ⟶ Z), PreservesLimit (cospan f
 
 variable [∀ {X Y Z : A} (f : X ⟶ Y) (g : X ⟶ Z), PreservesColimit (span f g) L]
 
-/- warning: category_theory.preserves_image.iso -> CategoryTheory.PreservesImage.iso is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), CategoryTheory.Iso.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), CategoryTheory.Iso.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.iso CategoryTheory.PreservesImage.isoₓ'. -/
 /-- If a functor preserves span and cospan, then it preserves images.
 -/
 @[simps]
@@ -65,25 +59,16 @@ def iso {X Y : A} (f : X ⟶ Y) : image (L.map f) ≅ L.obj (image f) :=
   IsImage.isoExt (Image.isImage (L.map f)) aux1.toMonoIsImage
 #align category_theory.preserves_image.iso CategoryTheory.PreservesImage.iso
 
-/- warning: category_theory.preserves_image.factor_thru_image_comp_hom -> CategoryTheory.PreservesImage.factorThruImage_comp_hom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_homₓ'. -/
 @[reassoc]
 theorem factorThruImage_comp_hom {X Y : A} (f : X ⟶ Y) :
     factorThruImage (L.map f) ≫ (iso L f).Hom = L.map (factorThruImage f) := by simp
 #align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_hom
 
-/- warning: category_theory.preserves_image.hom_comp_map_image_ι -> CategoryTheory.PreservesImage.hom_comp_map_image_ι is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ιₓ'. -/
 @[reassoc]
 theorem hom_comp_map_image_ι {X Y : A} (f : X ⟶ Y) :
     (iso L f).Hom ≫ L.map (image.ι f) = image.ι (L.map f) := by simp
 #align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ι
 
-/- warning: category_theory.preserves_image.inv_comp_image_ι_map -> CategoryTheory.PreservesImage.inv_comp_image_ι_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.inv_comp_image_ι_map CategoryTheory.PreservesImage.inv_comp_image_ι_mapₓ'. -/
 @[reassoc]
 theorem inv_comp_image_ι_map {X Y : A} (f : X ⟶ Y) :
     (iso L f).inv ≫ image.ι (L.map f) = L.map (image.ι f) := by simp
Diff
@@ -66,10 +66,7 @@ def iso {X Y : A} (f : X ⟶ Y) : image (L.map f) ≅ L.obj (image f) :=
 #align category_theory.preserves_image.iso CategoryTheory.PreservesImage.iso
 
 /- warning: category_theory.preserves_image.factor_thru_image_comp_hom -> CategoryTheory.PreservesImage.factorThruImage_comp_hom is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.Limits.HasImages.hasImage.{u4, u2} B _inst_2 _inst_6 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f))) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.factorThruImage.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.Limits.HasImages.hasImage.{u4, u2} B _inst_2 _inst_6 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f))) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f))) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)) (CategoryTheory.Limits.factorThruImage.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.factorThruImage.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f))) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) (CategoryTheory.Limits.factorThruImage.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_homₓ'. -/
 @[reassoc]
 theorem factorThruImage_comp_hom {X Y : A} (f : X ⟶ Y) :
@@ -77,10 +74,7 @@ theorem factorThruImage_comp_hom {X Y : A} (f : X ⟶ Y) :
 #align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_hom
 
 /- warning: category_theory.preserves_image.hom_comp_map_image_ι -> CategoryTheory.PreservesImage.hom_comp_map_image_ι is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f))
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ιₓ'. -/
 @[reassoc]
 theorem hom_comp_map_image_ι {X Y : A} (f : X ⟶ Y) :
@@ -88,10 +82,7 @@ theorem hom_comp_map_image_ι {X Y : A} (f : X ⟶ Y) :
 #align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ι
 
 /- warning: category_theory.preserves_image.inv_comp_image_ι_map -> CategoryTheory.PreservesImage.inv_comp_image_ι_map is a dubious translation:
-lean 3 declaration is
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Iso.inv.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f))) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))
-but is expected to have type
-  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (CategoryTheory.Iso.inv.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f)))) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.inv_comp_image_ι_map CategoryTheory.PreservesImage.inv_comp_image_ι_mapₓ'. -/
 @[reassoc]
 theorem inv_comp_image_ι_map {X Y : A} (f : X ⟶ Y) :
Diff
@@ -71,7 +71,7 @@ lean 3 declaration is
 but is expected to have type
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.factorThruImage.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f))) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) (CategoryTheory.Limits.factorThruImage.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_homₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem factorThruImage_comp_hom {X Y : A} (f : X ⟶ Y) :
     factorThruImage (L.map f) ≫ (iso L f).Hom = L.map (factorThruImage f) := by simp
 #align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_hom
@@ -82,7 +82,7 @@ lean 3 declaration is
 but is expected to have type
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f)))
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ιₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem hom_comp_map_image_ι {X Y : A} (f : X ⟶ Y) :
     (iso L f).Hom ≫ L.map (image.ι f) = image.ι (L.map f) := by simp
 #align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ι
@@ -93,7 +93,7 @@ lean 3 declaration is
 but is expected to have type
   forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (CategoryTheory.Iso.inv.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f)))) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.inv_comp_image_ι_map CategoryTheory.PreservesImage.inv_comp_image_ι_mapₓ'. -/
-@[reassoc.1]
+@[reassoc]
 theorem inv_comp_image_ι_map {X Y : A} (f : X ⟶ Y) :
     (iso L f).inv ≫ image.ι (L.map f) = L.map (image.ι f) := by simp
 #align category_theory.preserves_image.inv_comp_image_ι_map CategoryTheory.PreservesImage.inv_comp_image_ι_map
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jujian Zhang
 
 ! This file was ported from Lean 3 source module category_theory.limits.preserves.shapes.images
-! leanprover-community/mathlib commit fc78e3c190c72a109699385da6be2725e88df841
+! leanprover-community/mathlib commit 10bf4f825ad729c5653adc039dafa3622e7f93c9
 ! 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.Constructions.EpiMono
 /-!
 # Preserving images
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file, we show that if a functor preserves span and cospan, then it preserves images.
 -/
 
Diff
@@ -42,6 +42,12 @@ variable [∀ {X Y Z : A} (f : X ⟶ Z) (g : Y ⟶ Z), PreservesLimit (cospan f
 
 variable [∀ {X Y Z : A} (f : X ⟶ Y) (g : X ⟶ Z), PreservesColimit (span f g) L]
 
+/- warning: category_theory.preserves_image.iso -> CategoryTheory.PreservesImage.iso is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), CategoryTheory.Iso.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))
+but is expected to have type
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), CategoryTheory.Iso.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.iso CategoryTheory.PreservesImage.isoₓ'. -/
 /-- If a functor preserves span and cospan, then it preserves images.
 -/
 @[simps]
@@ -56,16 +62,34 @@ def iso {X Y : A} (f : X ⟶ Y) : image (L.map f) ≅ L.obj (image f) :=
   IsImage.isoExt (Image.isImage (L.map f)) aux1.toMonoIsImage
 #align category_theory.preserves_image.iso CategoryTheory.PreservesImage.iso
 
+/- warning: category_theory.preserves_image.factor_thru_image_comp_hom -> CategoryTheory.PreservesImage.factorThruImage_comp_hom is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.Limits.HasImages.hasImage.{u4, u2} B _inst_2 _inst_6 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f))) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.factorThruImage.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.Limits.HasImages.hasImage.{u4, u2} B _inst_2 _inst_6 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f))) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f))) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)) (CategoryTheory.Limits.factorThruImage.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))
+but is expected to have type
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.factorThruImage.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f))) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) (CategoryTheory.Limits.factorThruImage.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_homₓ'. -/
 @[reassoc.1]
 theorem factorThruImage_comp_hom {X Y : A} (f : X ⟶ Y) :
     factorThruImage (L.map f) ≫ (iso L f).Hom = L.map (factorThruImage f) := by simp
 #align category_theory.preserves_image.factor_thru_image_comp_hom CategoryTheory.PreservesImage.factorThruImage_comp_hom
 
+/- warning: category_theory.preserves_image.hom_comp_map_image_ι -> CategoryTheory.PreservesImage.hom_comp_map_image_ι is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f))
+but is expected to have type
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (CategoryTheory.Iso.hom.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ιₓ'. -/
 @[reassoc.1]
 theorem hom_comp_map_image_ι {X Y : A} (f : X ⟶ Y) :
     (iso L f).Hom ≫ L.map (image.ι f) = image.ι (L.map f) := by simp
 #align category_theory.preserves_image.hom_comp_map_image_ι CategoryTheory.PreservesImage.hom_comp_map_image_ι
 
+/- warning: category_theory.preserves_image.inv_comp_image_ι_map -> CategoryTheory.PreservesImage.inv_comp_image_ι_map is a dubious translation:
+lean 3 declaration is
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Iso.inv.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f)) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} A _inst_1 B _inst_2 L Y) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L X Y f) (CategoryTheory.PreservesImage.iso._proof_1.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_6 L X Y f))) (CategoryTheory.Functor.map.{u3, u4, u1, u2} A _inst_1 B _inst_2 L (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.hasImage.{u3, u1} A _inst_1 _inst_4 X Y f)))
+but is expected to have type
+  forall {A : Type.{u1}} {B : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} A] [_inst_2 : CategoryTheory.Category.{u4, u2} B] [_inst_3 : CategoryTheory.Limits.HasEqualizers.{u3, u1} A _inst_1] [_inst_4 : CategoryTheory.Limits.HasImages.{u3, u1} A _inst_1] [_inst_5 : CategoryTheory.StrongEpiCategory.{u4, u2} B _inst_2] [_inst_6 : CategoryTheory.Limits.HasImages.{u4, u2} B _inst_2] (L : CategoryTheory.Functor.{u3, u4, u1, u2} A _inst_1 B _inst_2) [_inst_7 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z), CategoryTheory.Limits.PreservesLimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.cospan.{u3, u1} A _inst_1 X Y Z f g) L] [_inst_8 : forall {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z), CategoryTheory.Limits.PreservesColimit.{0, 0, u3, u4, u1, u2} A _inst_1 B _inst_2 CategoryTheory.Limits.WalkingSpan (CategoryTheory.Limits.WidePushoutShape.category.{0} CategoryTheory.Limits.WalkingPair) (CategoryTheory.Limits.span.{u3, u1} A _inst_1 X Y Z f g) L] {X : A} {Y : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y), Eq.{succ u4} (Quiver.Hom.{succ u4, u2} B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y)) (CategoryTheory.CategoryStruct.comp.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (CategoryTheory.Iso.inv.{u4, u2} B _inst_2 (CategoryTheory.Limits.image.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f))) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f))) (CategoryTheory.PreservesImage.iso.{u1, u2, u3, u4} A B _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 L (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) Y Z) => _inst_7 X Y Z f g) (fun {X : A} {Y : A} {Z : A} (f : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Y) (g : Quiver.Hom.{succ u3, u1} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) X Z) => _inst_8 X Y Z f g) X Y f)) (CategoryTheory.Limits.image.ι.{u4, u2} B _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f) (CategoryTheory.Limits.HasImages.has_image.{u4, u2} B _inst_2 _inst_6 (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) Y) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) X Y f)))) (Prefunctor.map.{succ u3, succ u4, u1, u2} A (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} A (CategoryTheory.Category.toCategoryStruct.{u3, u1} A _inst_1)) B (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} B (CategoryTheory.Category.toCategoryStruct.{u4, u2} B _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} A _inst_1 B _inst_2 L) (CategoryTheory.Limits.image.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)) Y (CategoryTheory.Limits.image.ι.{u3, u1} A _inst_1 X Y f (CategoryTheory.Limits.HasImages.has_image.{u3, u1} A _inst_1 _inst_4 X Y f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_image.inv_comp_image_ι_map CategoryTheory.PreservesImage.inv_comp_image_ι_mapₓ'. -/
 @[reassoc.1]
 theorem inv_comp_image_ι_map {X Y : A} (f : X ⟶ Y) :
     (iso L f).inv ≫ image.ι (L.map f) = L.map (image.ι f) := by simp
Diff
@@ -52,7 +52,7 @@ def iso {X Y : A} (f : X ⟶ Y) : image (L.map f) ≅ L.obj (image f) :=
       m_mono := preserves_mono_of_preservesLimit _ _
       e := L.map <| factorThruImage _
       e_strongEpi := @strongEpi_of_epi _ _ _ <| preserves_epi_of_preservesColimit L _
-      fac' := by rw [← L.map_comp, limits.image.fac] }
+      fac := by rw [← L.map_comp, limits.image.fac] }
   IsImage.isoExt (Image.isImage (L.map f)) aux1.toMonoIsImage
 #align category_theory.preserves_image.iso CategoryTheory.PreservesImage.iso
 

Changes in mathlib4

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

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -28,15 +28,10 @@ open CategoryTheory.Limits
 universe u₁ u₂ v₁ v₂
 
 variable {A : Type u₁} {B : Type u₂} [Category.{v₁} A] [Category.{v₂} B]
-
 variable [HasEqualizers A] [HasImages A]
-
 variable [StrongEpiCategory B] [HasImages B]
-
 variable (L : A ⥤ B)
-
 variable [∀ {X Y Z : A} (f : X ⟶ Z) (g : Y ⟶ Z), PreservesLimit (cospan f g) L]
-
 variable [∀ {X Y Z : A} (f : X ⟶ Y) (g : X ⟶ Z), PreservesColimit (span f g) L]
 
 /-- If a functor preserves span and cospan, then it preserves images.
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) 2022 Jujian Zhang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jujian Zhang
-
-! This file was ported from Lean 3 source module category_theory.limits.preserves.shapes.images
-! leanprover-community/mathlib commit fc78e3c190c72a109699385da6be2725e88df841
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Limits.Shapes.Images
 import Mathlib.CategoryTheory.Limits.Constructions.EpiMono
 
+#align_import category_theory.limits.preserves.shapes.images from "leanprover-community/mathlib"@"fc78e3c190c72a109699385da6be2725e88df841"
+
 /-!
 # Preserving images
 
feat: port CategoryTheory.Limits.Preserves.Shapes.Images (#2824)

Dependencies 115

116 files ported (100.0%)
47490 lines ported (100.0%)

All dependencies are ported!