category_theory.limits.preserves.shapes.images
⟷
Mathlib.CategoryTheory.Limits.Preserves.Shapes.Images
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -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.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/2af0836443b4cfb5feda0df0051acdb398304931
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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)
@@ -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.
@@ -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
All dependencies are ported!