category_theory.localization.predicateMathlib.CategoryTheory.Localization.Predicate

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -369,7 +369,7 @@ theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting
     (τ : F₁ ⟶ F₂) (X : C) :
     (liftNatTrans L W F₁ F₂ F₁' F₂' τ).app (L.obj X) =
       (Lifting.iso L W F₁ F₁').Hom.app X ≫ τ.app X ≫ (Lifting.iso L W F₂ F₂').inv.app X :=
-  congr_app (Functor.image_preimage (whiskeringLeftFunctor' L W E) _) X
+  congr_app (Functor.map_preimage (whiskeringLeftFunctor' L W E) _) X
 #align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_app
 -/
 
Diff
@@ -53,7 +53,8 @@ identifies the category `D` with the localized category of `C` with respect
 to `W : morphism_property C`. -/
 class IsLocalization : Prop where
   inverts : W.IsInvertedBy L
-  nonempty_isEquivalence : Nonempty (IsEquivalence (Localization.Construction.lift L inverts))
+  nonempty_isEquivalence :
+    Nonempty (CategoryTheory.Functor.IsEquivalence (Localization.Construction.lift L inverts))
 #align category_theory.functor.is_localization CategoryTheory.Functor.IsLocalization
 -/
 
@@ -175,7 +176,7 @@ def isoOfHom {X Y : C} (f : X ⟶ Y) (hf : W f) : L.obj X ≅ L.obj Y :=
 #align category_theory.localization.iso_of_hom CategoryTheory.Localization.isoOfHom
 -/
 
-instance : IsEquivalence (Localization.Construction.lift L (inverts L W)) :=
+instance : CategoryTheory.Functor.IsEquivalence (Localization.Construction.lift L (inverts L W)) :=
   (inferInstance : L.IsLocalization W).nonempty_isEquivalence.some
 
 #print CategoryTheory.Localization.equivalenceFromModel /-
@@ -210,7 +211,7 @@ def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).invers
 -/
 
 #print CategoryTheory.Localization.essSurj /-
-theorem essSurj : EssSurj L :=
+theorem essSurj : CategoryTheory.Functor.EssSurj L :=
   ⟨fun X =>
     ⟨(Construction.objEquiv W).invFun ((equivalenceFromModel L W).inverse.obj X),
       Nonempty.intro
@@ -228,7 +229,7 @@ def whiskeringLeftFunctor : (D ⥤ E) ⥤ W.FunctorsInverting E :=
 #align category_theory.localization.whiskering_left_functor CategoryTheory.Localization.whiskeringLeftFunctor
 -/
 
-instance : IsEquivalence (whiskeringLeftFunctor L W E) :=
+instance : CategoryTheory.Functor.IsEquivalence (whiskeringLeftFunctor L W E) :=
   by
   refine'
     is_equivalence.of_iso _
@@ -288,17 +289,17 @@ theorem whiskeringLeftFunctor'_obj (F : D ⥤ E) : (whiskeringLeftFunctor' L W E
 #align category_theory.localization.whiskering_left_functor'_obj CategoryTheory.Localization.whiskeringLeftFunctor'_obj
 -/
 
-instance : Full (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor'_eq];
-  infer_instance
+instance : CategoryTheory.Functor.Full (whiskeringLeftFunctor' L W E) := by
+  rw [whiskering_left_functor'_eq]; infer_instance
 
-instance : Faithful (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor'_eq];
-  infer_instance
+instance : CategoryTheory.Functor.Faithful (whiskeringLeftFunctor' L W E) := by
+  rw [whiskering_left_functor'_eq]; infer_instance
 
 #print CategoryTheory.Localization.natTrans_ext /-
 theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
     (h : ∀ X : C, τ.app (L.obj X) = τ'.app (L.obj X)) : τ = τ' :=
   by
-  haveI : CategoryTheory.EssSurj L := ess_surj L W
+  haveI : CategoryTheory.Functor.EssSurj L := ess_surj L W
   ext Y
   rw [← cancel_epi (F₁.map (L.obj_obj_preimage_iso Y).Hom), τ.naturality, τ'.naturality, h]
 #align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
Diff
@@ -447,7 +447,7 @@ open Localization
 theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W] : L₂.IsLocalization W :=
   by
   have h := localization.inverts L₁ W
-  rw [morphism_property.is_inverted_by.iff_of_iso W e] at h 
+  rw [morphism_property.is_inverted_by.iff_of_iso W e] at h
   let F₁ := localization.construction.lift L₁ (localization.inverts L₁ W)
   let F₂ := localization.construction.lift L₂ h
   exact
Diff
@@ -305,7 +305,7 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
 -/
 
 #print CategoryTheory.Localization.Lifting /-
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
 is commutative up to an isomorphism. -/
Diff
@@ -305,7 +305,7 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
 -/
 
 #print CategoryTheory.Localization.Lifting /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
 is commutative up to an isomorphism. -/
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
 -/
-import Mathbin.CategoryTheory.Localization.Construction
+import CategoryTheory.Localization.Construction
 
 #align_import category_theory.localization.predicate from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
 
@@ -305,7 +305,7 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
 -/
 
 #print CategoryTheory.Localization.Lifting /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
 is commutative up to an isomorphism. -/
Diff
@@ -47,16 +47,18 @@ variable {C D : Type _} [Category C] [Category D] (L : C ⥤ D) (W : MorphismPro
 
 namespace Functor
 
+#print CategoryTheory.Functor.IsLocalization /-
 /-- The predicate expressing that, up to equivalence, a functor `L : C ⥤ D`
 identifies the category `D` with the localized category of `C` with respect
 to `W : morphism_property C`. -/
 class IsLocalization : Prop where
   inverts : W.IsInvertedBy L
   nonempty_isEquivalence : Nonempty (IsEquivalence (Localization.Construction.lift L inverts))
-#align category_theory.functor.is_localization CategoryTheory.Functor.IsLocalizationₓ
+#align category_theory.functor.is_localization CategoryTheory.Functor.IsLocalization
+-/
 
 #print CategoryTheory.Functor.q_isLocalization /-
-instance q_isLocalization : W.Q.IsLocalizationₓ W
+instance q_isLocalization : W.Q.IsLocalization W
     where
   inverts := W.Q_inverts
   nonempty_isEquivalence :=
@@ -145,8 +147,7 @@ theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarg
 -/
 
 #print CategoryTheory.Functor.IsLocalization.for_id /-
-theorem IsLocalization.for_id (hW : W ⊆ MorphismProperty.isomorphisms C) :
-    (𝟭 C).IsLocalizationₓ W :=
+theorem IsLocalization.for_id (hW : W ⊆ MorphismProperty.isomorphisms C) : (𝟭 C).IsLocalization W :=
   IsLocalization.mk' _ _ (Localization.strictUniversalPropertyFixedTargetId W _ hW)
     (Localization.strictUniversalPropertyFixedTargetId W _ hW)
 #align category_theory.functor.is_localization.for_id CategoryTheory.Functor.IsLocalization.for_id
@@ -156,11 +157,11 @@ end Functor
 
 namespace Localization
 
-variable [L.IsLocalizationₓ W]
+variable [L.IsLocalization W]
 
 #print CategoryTheory.Localization.inverts /-
 theorem inverts : W.IsInvertedBy L :=
-  (inferInstance : L.IsLocalizationₓ W).inverts
+  (inferInstance : L.IsLocalization W).inverts
 #align category_theory.localization.inverts CategoryTheory.Localization.inverts
 -/
 
@@ -175,7 +176,7 @@ def isoOfHom {X Y : C} (f : X ⟶ Y) (hf : W f) : L.obj X ≅ L.obj Y :=
 -/
 
 instance : IsEquivalence (Localization.Construction.lift L (inverts L W)) :=
-  (inferInstance : L.IsLocalizationₓ W).nonempty_isEquivalence.some
+  (inferInstance : L.IsLocalization W).nonempty_isEquivalence.some
 
 #print CategoryTheory.Localization.equivalenceFromModel /-
 /-- A chosen equivalence of categories `W.localization ≅ D` for a functor
@@ -303,13 +304,15 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
 #align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
 -/
 
+#print CategoryTheory.Localization.Lifting /-
 /- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
 is commutative up to an isomorphism. -/
 class Lifting (F : C ⥤ E) (F' : D ⥤ E) where
   Iso : L ⋙ F' ≅ F
-#align category_theory.localization.lifting CategoryTheory.Localization.Liftingₓ
+#align category_theory.localization.lifting CategoryTheory.Localization.Lifting
+-/
 
 variable {W}
 
@@ -317,13 +320,13 @@ variable {W}
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C` and
 a functor `F : C ⥤ E` which inverts `W`, this is a choice of functor
 `D ⥤ E` which lifts `F`. -/
-def lift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalizationₓ W] : D ⥤ E :=
+def lift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalization W] : D ⥤ E :=
   (functorEquivalence L W E).inverse.obj ⟨F, hF⟩
 #align category_theory.localization.lift CategoryTheory.Localization.lift
 -/
 
 #print CategoryTheory.Localization.liftingLift /-
-instance liftingLift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalizationₓ W] :
+instance liftingLift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalization W] :
     Lifting L W F (lift F hF L) :=
   ⟨(inducedFunctor _).mapIso ((functorEquivalence L W E).counitIso.app ⟨F, hF⟩)⟩
 #align category_theory.localization.lifting_lift CategoryTheory.Localization.liftingLift
@@ -333,7 +336,7 @@ instance liftingLift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L
 /-- The canonical isomorphism `L ⋙ lift F hF L ≅ F` for any functor `F : C ⥤ E`
 which inverts `W`, when `L : C ⥤ D` is a localization functor for `W`. -/
 @[simps]
-def fac (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalizationₓ W] :
+def fac (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalization W] :
     L ⋙ lift F hF L ≅ F :=
   Lifting.iso _ W _ _
 #align category_theory.localization.fac CategoryTheory.Localization.fac
@@ -441,7 +444,7 @@ namespace IsLocalization
 open Localization
 
 #print CategoryTheory.Functor.IsLocalization.of_iso /-
-theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalizationₓ W] : L₂.IsLocalizationₓ W :=
+theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W] : L₂.IsLocalization W :=
   by
   have h := localization.inverts L₁ W
   rw [morphism_property.is_inverted_by.iff_of_iso W e] at h 
@@ -458,7 +461,7 @@ theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalizationₓ
 /-- If `L : C ⥤ D` is a localization for `W : morphism_property C`, then it is also
 the case of a functor obtained by post-composing `L` with an equivalence of categories. -/
 theorem of_equivalence_target {E : Type _} [Category E] (L' : C ⥤ E) (eq : D ≌ E)
-    [L.IsLocalizationₓ W] (e : L ⋙ Eq.Functor ≅ L') : L'.IsLocalizationₓ W :=
+    [L.IsLocalization W] (e : L ⋙ Eq.Functor ≅ L') : L'.IsLocalization W :=
   by
   have h : W.is_inverted_by L' :=
     by
Diff
@@ -47,18 +47,16 @@ variable {C D : Type _} [Category C] [Category D] (L : C ⥤ D) (W : MorphismPro
 
 namespace Functor
 
-#print CategoryTheory.Functor.IsLocalization /-
 /-- The predicate expressing that, up to equivalence, a functor `L : C ⥤ D`
 identifies the category `D` with the localized category of `C` with respect
 to `W : morphism_property C`. -/
 class IsLocalization : Prop where
   inverts : W.IsInvertedBy L
   nonempty_isEquivalence : Nonempty (IsEquivalence (Localization.Construction.lift L inverts))
-#align category_theory.functor.is_localization CategoryTheory.Functor.IsLocalization
--/
+#align category_theory.functor.is_localization CategoryTheory.Functor.IsLocalizationₓ
 
 #print CategoryTheory.Functor.q_isLocalization /-
-instance q_isLocalization : W.Q.IsLocalization W
+instance q_isLocalization : W.Q.IsLocalizationₓ W
     where
   inverts := W.Q_inverts
   nonempty_isEquivalence :=
@@ -147,7 +145,8 @@ theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarg
 -/
 
 #print CategoryTheory.Functor.IsLocalization.for_id /-
-theorem IsLocalization.for_id (hW : W ⊆ MorphismProperty.isomorphisms C) : (𝟭 C).IsLocalization W :=
+theorem IsLocalization.for_id (hW : W ⊆ MorphismProperty.isomorphisms C) :
+    (𝟭 C).IsLocalizationₓ W :=
   IsLocalization.mk' _ _ (Localization.strictUniversalPropertyFixedTargetId W _ hW)
     (Localization.strictUniversalPropertyFixedTargetId W _ hW)
 #align category_theory.functor.is_localization.for_id CategoryTheory.Functor.IsLocalization.for_id
@@ -157,11 +156,11 @@ end Functor
 
 namespace Localization
 
-variable [L.IsLocalization W]
+variable [L.IsLocalizationₓ W]
 
 #print CategoryTheory.Localization.inverts /-
 theorem inverts : W.IsInvertedBy L :=
-  (inferInstance : L.IsLocalization W).inverts
+  (inferInstance : L.IsLocalizationₓ W).inverts
 #align category_theory.localization.inverts CategoryTheory.Localization.inverts
 -/
 
@@ -176,7 +175,7 @@ def isoOfHom {X Y : C} (f : X ⟶ Y) (hf : W f) : L.obj X ≅ L.obj Y :=
 -/
 
 instance : IsEquivalence (Localization.Construction.lift L (inverts L W)) :=
-  (inferInstance : L.IsLocalization W).nonempty_isEquivalence.some
+  (inferInstance : L.IsLocalizationₓ W).nonempty_isEquivalence.some
 
 #print CategoryTheory.Localization.equivalenceFromModel /-
 /-- A chosen equivalence of categories `W.localization ≅ D` for a functor
@@ -304,15 +303,13 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
 #align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
 -/
 
-#print CategoryTheory.Localization.Lifting /-
 /- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
 is commutative up to an isomorphism. -/
 class Lifting (F : C ⥤ E) (F' : D ⥤ E) where
   Iso : L ⋙ F' ≅ F
-#align category_theory.localization.lifting CategoryTheory.Localization.Lifting
--/
+#align category_theory.localization.lifting CategoryTheory.Localization.Liftingₓ
 
 variable {W}
 
@@ -320,13 +317,13 @@ variable {W}
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C` and
 a functor `F : C ⥤ E` which inverts `W`, this is a choice of functor
 `D ⥤ E` which lifts `F`. -/
-def lift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalization W] : D ⥤ E :=
+def lift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalizationₓ W] : D ⥤ E :=
   (functorEquivalence L W E).inverse.obj ⟨F, hF⟩
 #align category_theory.localization.lift CategoryTheory.Localization.lift
 -/
 
 #print CategoryTheory.Localization.liftingLift /-
-instance liftingLift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalization W] :
+instance liftingLift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalizationₓ W] :
     Lifting L W F (lift F hF L) :=
   ⟨(inducedFunctor _).mapIso ((functorEquivalence L W E).counitIso.app ⟨F, hF⟩)⟩
 #align category_theory.localization.lifting_lift CategoryTheory.Localization.liftingLift
@@ -336,7 +333,7 @@ instance liftingLift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L
 /-- The canonical isomorphism `L ⋙ lift F hF L ≅ F` for any functor `F : C ⥤ E`
 which inverts `W`, when `L : C ⥤ D` is a localization functor for `W`. -/
 @[simps]
-def fac (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalization W] :
+def fac (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalizationₓ W] :
     L ⋙ lift F hF L ≅ F :=
   Lifting.iso _ W _ _
 #align category_theory.localization.fac CategoryTheory.Localization.fac
@@ -444,7 +441,7 @@ namespace IsLocalization
 open Localization
 
 #print CategoryTheory.Functor.IsLocalization.of_iso /-
-theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W] : L₂.IsLocalization W :=
+theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalizationₓ W] : L₂.IsLocalizationₓ W :=
   by
   have h := localization.inverts L₁ W
   rw [morphism_property.is_inverted_by.iff_of_iso W e] at h 
@@ -461,7 +458,7 @@ theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W]
 /-- If `L : C ⥤ D` is a localization for `W : morphism_property C`, then it is also
 the case of a functor obtained by post-composing `L` with an equivalence of categories. -/
 theorem of_equivalence_target {E : Type _} [Category E] (L' : C ⥤ E) (eq : D ≌ E)
-    [L.IsLocalization W] (e : L ⋙ Eq.Functor ≅ L') : L'.IsLocalization W :=
+    [L.IsLocalizationₓ W] (e : L ⋙ Eq.Functor ≅ L') : L'.IsLocalizationₓ W :=
   by
   have h : W.is_inverted_by L' :=
     by
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
-
-! This file was ported from Lean 3 source module category_theory.localization.predicate
-! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Localization.Construction
 
+#align_import category_theory.localization.predicate from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
+
 /-!
 
 # Predicate for localized categories
Diff
@@ -123,6 +123,7 @@ end Localization
 
 namespace Functor
 
+#print CategoryTheory.Functor.IsLocalization.mk' /-
 theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarget L W D)
     (h₂ : Localization.StrictUniversalPropertyFixedTarget L W W.Localization) :
     IsLocalization L W :=
@@ -146,11 +147,14 @@ theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarg
             simpa only [eq_to_iso.hom, eq_to_hom_app, eq_to_hom_map, eq_to_hom_trans,
               eq_to_hom_refl] } }
 #align category_theory.functor.is_localization.mk' CategoryTheory.Functor.IsLocalization.mk'
+-/
 
+#print CategoryTheory.Functor.IsLocalization.for_id /-
 theorem IsLocalization.for_id (hW : W ⊆ MorphismProperty.isomorphisms C) : (𝟭 C).IsLocalization W :=
   IsLocalization.mk' _ _ (Localization.strictUniversalPropertyFixedTargetId W _ hW)
     (Localization.strictUniversalPropertyFixedTargetId W _ hW)
 #align category_theory.functor.is_localization.for_id CategoryTheory.Functor.IsLocalization.for_id
+-/
 
 end Functor
 
@@ -158,10 +162,13 @@ namespace Localization
 
 variable [L.IsLocalization W]
 
+#print CategoryTheory.Localization.inverts /-
 theorem inverts : W.IsInvertedBy L :=
   (inferInstance : L.IsLocalization W).inverts
 #align category_theory.localization.inverts CategoryTheory.Localization.inverts
+-/
 
+#print CategoryTheory.Localization.isoOfHom /-
 /-- The isomorphism `L.obj X ≅ L.obj Y` that is deduced from a morphism `f : X ⟶ Y` which
 belongs to `W`, when `L.is_localization W`. -/
 @[simps]
@@ -169,16 +176,19 @@ def isoOfHom {X Y : C} (f : X ⟶ Y) (hf : W f) : L.obj X ≅ L.obj Y :=
   haveI : is_iso (L.map f) := inverts L W f hf
   as_iso (L.map f)
 #align category_theory.localization.iso_of_hom CategoryTheory.Localization.isoOfHom
+-/
 
 instance : IsEquivalence (Localization.Construction.lift L (inverts L W)) :=
   (inferInstance : L.IsLocalization W).nonempty_isEquivalence.some
 
+#print CategoryTheory.Localization.equivalenceFromModel /-
 /-- A chosen equivalence of categories `W.localization ≅ D` for a functor
 `L : C ⥤ D` which satisfies `L.is_localization W`. This shall be used in
 order to deduce properties of `L` from properties of `W.Q`. -/
 def equivalenceFromModel : W.Localization ≌ D :=
   (Localization.Construction.lift L (inverts L W)).asEquivalence
 #align category_theory.localization.equivalence_from_model CategoryTheory.Localization.equivalenceFromModel
+-/
 
 #print CategoryTheory.Localization.qCompEquivalenceFromModelFunctorIso /-
 /-- Via the equivalence of categories `equivalence_from_model L W : W.localization ≌ D`,
@@ -202,6 +212,7 @@ def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).invers
 #align category_theory.localization.comp_equivalence_from_model_inverse_iso CategoryTheory.Localization.compEquivalenceFromModelInverseIso
 -/
 
+#print CategoryTheory.Localization.essSurj /-
 theorem essSurj : EssSurj L :=
   ⟨fun X =>
     ⟨(Construction.objEquiv W).invFun ((equivalenceFromModel L W).inverse.obj X),
@@ -209,6 +220,7 @@ theorem essSurj : EssSurj L :=
         ((qCompEquivalenceFromModelFunctorIso L W).symm.app _ ≪≫
           (equivalenceFromModel L W).counitIso.app X)⟩⟩
 #align category_theory.localization.ess_surj CategoryTheory.Localization.essSurj
+-/
 
 #print CategoryTheory.Localization.whiskeringLeftFunctor /-
 /-- The functor `(D ⥤ E) ⥤ W.functors_inverting E` induced by the composition
@@ -245,33 +257,39 @@ instance : IsEquivalence (whiskeringLeftFunctor L W E) :=
         change (W.Q ⋙ localization.construction.lift L (inverts L W)) ⋙ _ = L ⋙ _
         rw [construction.fac]
 
+#print CategoryTheory.Localization.functorEquivalence /-
 /-- The equivalence of categories `(D ⥤ E) ≌ (W.functors_inverting E)` induced by
 the composition with a localization functor `L : C ⥤ D` with respect to
 `W : morphism_property C`. -/
 def functorEquivalence : D ⥤ E ≌ W.FunctorsInverting E :=
   (whiskeringLeftFunctor L W E).asEquivalence
 #align category_theory.localization.functor_equivalence CategoryTheory.Localization.functorEquivalence
+-/
 
-include W
-
+#print CategoryTheory.Localization.whiskeringLeftFunctor' /-
 /-- The functor `(D ⥤ E) ⥤ (C ⥤ E)` given by the composition with a localization
 functor `L : C ⥤ D` with respect to `W : morphism_property C`. -/
 @[nolint unused_arguments]
 def whiskeringLeftFunctor' : (D ⥤ E) ⥤ C ⥤ E :=
   (whiskeringLeft C D E).obj L
 #align category_theory.localization.whiskering_left_functor' CategoryTheory.Localization.whiskeringLeftFunctor'
+-/
 
+#print CategoryTheory.Localization.whiskeringLeftFunctor'_eq /-
 theorem whiskeringLeftFunctor'_eq :
     whiskeringLeftFunctor' L W E = Localization.whiskeringLeftFunctor L W E ⋙ inducedFunctor _ :=
   rfl
 #align category_theory.localization.whiskering_left_functor'_eq CategoryTheory.Localization.whiskeringLeftFunctor'_eq
+-/
 
 variable {E}
 
+#print CategoryTheory.Localization.whiskeringLeftFunctor'_obj /-
 @[simp]
 theorem whiskeringLeftFunctor'_obj (F : D ⥤ E) : (whiskeringLeftFunctor' L W E).obj F = L ⋙ F :=
   rfl
 #align category_theory.localization.whiskering_left_functor'_obj CategoryTheory.Localization.whiskeringLeftFunctor'_obj
+-/
 
 instance : Full (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor'_eq];
   infer_instance
@@ -279,6 +297,7 @@ instance : Full (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor
 instance : Faithful (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor'_eq];
   infer_instance
 
+#print CategoryTheory.Localization.natTrans_ext /-
 theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
     (h : ∀ X : C, τ.app (L.obj X) = τ'.app (L.obj X)) : τ = τ' :=
   by
@@ -286,14 +305,17 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
   ext Y
   rw [← cancel_epi (F₁.map (L.obj_obj_preimage_iso Y).Hom), τ.naturality, τ'.naturality, h]
 #align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
+-/
 
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
+#print CategoryTheory.Localization.Lifting /-
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
 is commutative up to an isomorphism. -/
 class Lifting (F : C ⥤ E) (F' : D ⥤ E) where
   Iso : L ⋙ F' ≅ F
 #align category_theory.localization.lifting CategoryTheory.Localization.Lifting
+-/
 
 variable {W}
 
@@ -343,6 +365,7 @@ def liftNatTrans (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting L W F₁
 #align category_theory.localization.lift_nat_trans CategoryTheory.Localization.liftNatTrans
 -/
 
+#print CategoryTheory.Localization.liftNatTrans_app /-
 @[simp]
 theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting L W F₁ F₁'] [Lifting L W F₂ F₂']
     (τ : F₁ ⟶ F₂) (X : C) :
@@ -350,7 +373,9 @@ theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting
       (Lifting.iso L W F₁ F₁').Hom.app X ≫ τ.app X ≫ (Lifting.iso L W F₂ F₂').inv.app X :=
   congr_app (Functor.image_preimage (whiskeringLeftFunctor' L W E) _) X
 #align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_app
+-/
 
+#print CategoryTheory.Localization.comp_liftNatTrans /-
 @[simp, reassoc]
 theorem comp_liftNatTrans (F₁ F₂ F₃ : C ⥤ E) (F₁' F₂' F₃' : D ⥤ E) [h₁ : Lifting L W F₁ F₁']
     [h₂ : Lifting L W F₂ F₂'] [h₃ : Lifting L W F₃ F₃'] (τ : F₁ ⟶ F₂) (τ' : F₂ ⟶ F₃) :
@@ -359,13 +384,16 @@ theorem comp_liftNatTrans (F₁ F₂ F₃ : C ⥤ E) (F₁' F₂' F₃' : D ⥤
   natTrans_ext L W _ _ fun X => by
     simp only [nat_trans.comp_app, lift_nat_trans_app, assoc, iso.inv_hom_id_app_assoc]
 #align category_theory.localization.comp_lift_nat_trans CategoryTheory.Localization.comp_liftNatTrans
+-/
 
+#print CategoryTheory.Localization.liftNatTrans_id /-
 @[simp]
 theorem liftNatTrans_id (F : C ⥤ E) (F' : D ⥤ E) [h : Lifting L W F F'] :
     liftNatTrans L W F F F' F' (𝟙 F) = 𝟙 F' :=
   natTrans_ext L W _ _ fun X => by
     simpa only [lift_nat_trans_app, nat_trans.id_app, id_comp, iso.hom_inv_id_app]
 #align category_theory.localization.lift_nat_trans_id CategoryTheory.Localization.liftNatTrans_id
+-/
 
 #print CategoryTheory.Localization.liftNatIso /-
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C`,
@@ -382,11 +410,13 @@ def liftNatIso (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [h₁ : Lifting L W
 
 namespace Lifting
 
+#print CategoryTheory.Localization.Lifting.compRight /-
 @[simps]
 instance compRight {E' : Type _} [Category E'] (F : C ⥤ E) (F' : D ⥤ E) [Lifting L W F F']
     (G : E ⥤ E') : Lifting L W (F ⋙ G) (F' ⋙ G) :=
   ⟨isoWhiskerRight (iso L W F F') G⟩
 #align category_theory.localization.lifting.comp_right CategoryTheory.Localization.Lifting.compRight
+-/
 
 #print CategoryTheory.Localization.Lifting.id /-
 @[simps]
@@ -395,6 +425,7 @@ instance id : Lifting L W L (𝟭 D) :=
 #align category_theory.localization.lifting.id CategoryTheory.Localization.Lifting.id
 -/
 
+#print CategoryTheory.Localization.Lifting.ofIsos /-
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C`,
 if `F₁' : D ⥤ E` lifts a functor `F₁ : C ⥤ D`, then a functor `F₂'` which
 is isomorphic to `F₁'` also lifts a functor `F₂` that is isomorphic to `F₁`.  -/
@@ -403,6 +434,7 @@ def ofIsos {F₁ F₂ : C ⥤ E} {F₁' F₂' : D ⥤ E} (e : F₁ ≅ F₂) (e'
     Lifting L W F₂ F₂' :=
   ⟨isoWhiskerLeft L e'.symm ≪≫ iso L W F₁ F₁' ≪≫ e⟩
 #align category_theory.localization.lifting.of_isos CategoryTheory.Localization.Lifting.ofIsos
+-/
 
 end Lifting
 
@@ -414,6 +446,7 @@ namespace IsLocalization
 
 open Localization
 
+#print CategoryTheory.Functor.IsLocalization.of_iso /-
 theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W] : L₂.IsLocalization W :=
   by
   have h := localization.inverts L₁ W
@@ -425,7 +458,9 @@ theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W]
       nonempty_isEquivalence :=
         Nonempty.intro (is_equivalence.of_iso (lift_nat_iso W.Q W L₁ L₂ F₁ F₂ e) inferInstance) }
 #align category_theory.functor.is_localization.of_iso CategoryTheory.Functor.IsLocalization.of_iso
+-/
 
+#print CategoryTheory.Functor.IsLocalization.of_equivalence_target /-
 /-- If `L : C ⥤ D` is a localization for `W : morphism_property C`, then it is also
 the case of a functor obtained by post-composing `L` with an equivalence of categories. -/
 theorem of_equivalence_target {E : Type _} [Category E] (L' : C ⥤ E) (eq : D ≌ E)
@@ -442,6 +477,7 @@ theorem of_equivalence_target {E : Type _} [Category E] (L' : C ⥤ E) (eq : D 
     { inverts := h
       nonempty_isEquivalence := Nonempty.intro (is_equivalence.of_iso e' inferInstance) }
 #align category_theory.functor.is_localization.of_equivalence_target CategoryTheory.Functor.IsLocalization.of_equivalence_target
+-/
 
 end IsLocalization
 
Diff
@@ -199,7 +199,6 @@ def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).invers
       (Functor.associator _ _ _)
     _ ≅ W.Q ⋙ 𝟭 _ := (isoWhiskerLeft _ (equivalenceFromModel L W).unitIso.symm)
     _ ≅ W.Q := Functor.rightUnitor _
-    
 #align category_theory.localization.comp_equivalence_from_model_inverse_iso CategoryTheory.Localization.compEquivalenceFromModelInverseIso
 -/
 
Diff
@@ -288,7 +288,7 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
   rw [← cancel_epi (F₁.map (L.obj_obj_preimage_iso Y).Hom), τ.naturality, τ'.naturality, h]
 #align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
 
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
 is commutative up to an isomorphism. -/
Diff
@@ -418,7 +418,7 @@ open Localization
 theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W] : L₂.IsLocalization W :=
   by
   have h := localization.inverts L₁ W
-  rw [morphism_property.is_inverted_by.iff_of_iso W e] at h
+  rw [morphism_property.is_inverted_by.iff_of_iso W e] at h 
   let F₁ := localization.construction.lift L₁ (localization.inverts L₁ W)
   let F₂ := localization.construction.lift L₂ h
   exact
Diff
@@ -123,12 +123,6 @@ end Localization
 
 namespace Functor
 
-/- warning: category_theory.functor.is_localization.mk' -> CategoryTheory.Functor.IsLocalization.mk' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1), (CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.{u1, u2, u3, u4, u2, u4} C D _inst_1 _inst_2 L W D _inst_2) -> (CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.{u1, u2, u3, u4, u1, max u1 u3} C D _inst_1 _inst_2 L W (CategoryTheory.MorphismProperty.Localization.{u1, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u3} C _inst_1 W)) -> (CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W)
-but is expected to have type
-  forall {C : Type.{u4}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] [_inst_2 : CategoryTheory.Category.{u1, u3} D] (L : CategoryTheory.Functor.{u2, u1, u4, u3} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u2, u4} C _inst_1), (CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.{u4, u3, u2, u1, u3, u1} C D _inst_1 _inst_2 L W D _inst_2) -> (CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.{u4, u3, u2, u1, u4, max u4 u2} C D _inst_1 _inst_2 L W (CategoryTheory.MorphismProperty.Localization.{u4, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u2} C _inst_1 W)) -> (CategoryTheory.Functor.IsLocalization.{u4, u3, u2, u1} C D _inst_1 _inst_2 L W)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_localization.mk' CategoryTheory.Functor.IsLocalization.mk'ₓ'. -/
 theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarget L W D)
     (h₂ : Localization.StrictUniversalPropertyFixedTarget L W W.Localization) :
     IsLocalization L W :=
@@ -153,12 +147,6 @@ theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarg
               eq_to_hom_refl] } }
 #align category_theory.functor.is_localization.mk' CategoryTheory.Functor.IsLocalization.mk'
 
-/- warning: category_theory.functor.is_localization.for_id -> CategoryTheory.Functor.IsLocalization.for_id is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1), (HasSubset.Subset.{max u1 u2} (CategoryTheory.MorphismProperty.{u2, u1} C _inst_1) (CategoryTheory.MorphismProperty.hasSubset.{u2, u1} C _inst_1) W (CategoryTheory.MorphismProperty.isomorphisms.{u2, u1} C _inst_1)) -> (CategoryTheory.Functor.IsLocalization.{u1, u1, u2, u2} C C _inst_1 _inst_1 (CategoryTheory.Functor.id.{u2, u1} C _inst_1) W)
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (W : CategoryTheory.MorphismProperty.{u1, u2} C _inst_1), (HasSubset.Subset.{max u2 u1} (CategoryTheory.MorphismProperty.{u1, u2} C _inst_1) (CategoryTheory.MorphismProperty.instHasSubsetMorphismProperty.{u1, u2} C _inst_1) W (CategoryTheory.MorphismProperty.isomorphisms.{u1, u2} C _inst_1)) -> (CategoryTheory.Functor.IsLocalization.{u2, u2, u1, u1} C C _inst_1 _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) W)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_localization.for_id CategoryTheory.Functor.IsLocalization.for_idₓ'. -/
 theorem IsLocalization.for_id (hW : W ⊆ MorphismProperty.isomorphisms C) : (𝟭 C).IsLocalization W :=
   IsLocalization.mk' _ _ (Localization.strictUniversalPropertyFixedTargetId W _ hW)
     (Localization.strictUniversalPropertyFixedTargetId W _ hW)
@@ -170,22 +158,10 @@ namespace Localization
 
 variable [L.IsLocalization W]
 
-/- warning: category_theory.localization.inverts -> CategoryTheory.Localization.inverts is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.MorphismProperty.IsInvertedBy.{u3, u1, u2, u4} C _inst_1 D _inst_2 W L
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u4, u3} C] [_inst_2 : CategoryTheory.Category.{u1, u2} D] (L : CategoryTheory.Functor.{u4, u1, u3, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u4, u3} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u3, u2, u4, u1} C D _inst_1 _inst_2 L W], CategoryTheory.MorphismProperty.IsInvertedBy.{u4, u3, u2, u1} C _inst_1 D _inst_2 W L
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.inverts CategoryTheory.Localization.invertsₓ'. -/
 theorem inverts : W.IsInvertedBy L :=
   (inferInstance : L.IsLocalization W).inverts
 #align category_theory.localization.inverts CategoryTheory.Localization.inverts
 
-/- warning: category_theory.localization.iso_of_hom -> CategoryTheory.Localization.isoOfHom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {X : C} {Y : C} (f : Quiver.Hom.{succ u3, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} C (CategoryTheory.Category.toCategoryStruct.{u3, u1} C _inst_1)) X Y), (W X Y f) -> (CategoryTheory.Iso.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L Y))
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {X : C} {Y : C} (f : Quiver.Hom.{succ u3, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} C (CategoryTheory.Category.toCategoryStruct.{u3, u1} C _inst_1)) X Y), (W X Y f) -> (CategoryTheory.Iso.{u4, u2} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} C (CategoryTheory.Category.toCategoryStruct.{u3, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} D (CategoryTheory.Category.toCategoryStruct.{u4, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} C _inst_1 D _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} C (CategoryTheory.Category.toCategoryStruct.{u3, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} D (CategoryTheory.Category.toCategoryStruct.{u4, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} C _inst_1 D _inst_2 L) Y))
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.iso_of_hom CategoryTheory.Localization.isoOfHomₓ'. -/
 /-- The isomorphism `L.obj X ≅ L.obj Y` that is deduced from a morphism `f : X ⟶ Y` which
 belongs to `W`, when `L.is_localization W`. -/
 @[simps]
@@ -197,12 +173,6 @@ def isoOfHom {X Y : C} (f : X ⟶ Y) (hf : W f) : L.obj X ≅ L.obj Y :=
 instance : IsEquivalence (Localization.Construction.lift L (inverts L W)) :=
   (inferInstance : L.IsLocalization W).nonempty_isEquivalence.some
 
-/- warning: category_theory.localization.equivalence_from_model -> CategoryTheory.Localization.equivalenceFromModel is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Equivalence.{max u1 u3, u4, u1, u2} (CategoryTheory.MorphismProperty.Localization.{u1, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u3} C _inst_1 W) D _inst_2
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Equivalence.{max u1 u3, u4, u1, u2} (CategoryTheory.MorphismProperty.Localization.{u1, u3} C _inst_1 W) D (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u3} C _inst_1 W) _inst_2
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.equivalence_from_model CategoryTheory.Localization.equivalenceFromModelₓ'. -/
 /-- A chosen equivalence of categories `W.localization ≅ D` for a functor
 `L : C ⥤ D` which satisfies `L.is_localization W`. This shall be used in
 order to deduce properties of `L` from properties of `W.Q`. -/
@@ -233,12 +203,6 @@ def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).invers
 #align category_theory.localization.comp_equivalence_from_model_inverse_iso CategoryTheory.Localization.compEquivalenceFromModelInverseIso
 -/
 
-/- warning: category_theory.localization.ess_surj -> CategoryTheory.Localization.essSurj is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.EssSurj.{u3, u4, u1, u2} C D _inst_1 _inst_2 L
-but is expected to have type
-  forall {C : Type.{u2}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u2} C] [_inst_2 : CategoryTheory.Category.{u3, u1} D] (L : CategoryTheory.Functor.{u4, u3, u2, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u4, u2} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u2, u1, u4, u3} C D _inst_1 _inst_2 L W], CategoryTheory.EssSurj.{u4, u3, u2, u1} C D _inst_1 _inst_2 L
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.ess_surj CategoryTheory.Localization.essSurjₓ'. -/
 theorem essSurj : EssSurj L :=
   ⟨fun X =>
     ⟨(Construction.objEquiv W).invFun ((equivalenceFromModel L W).inverse.obj X),
@@ -282,12 +246,6 @@ instance : IsEquivalence (whiskeringLeftFunctor L W E) :=
         change (W.Q ⋙ localization.construction.lift L (inverts L W)) ⋙ _ = L ⋙ _
         rw [construction.fac]
 
-/- warning: category_theory.localization.functor_equivalence -> CategoryTheory.Localization.functorEquivalence is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Equivalence.{max u2 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.{u3, u1, u5, u6} C _inst_1 W E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.category.{u3, u5, u1, u6} C _inst_1 W E _inst_3)
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Equivalence.{max u2 u6, max u1 u6, max (max (max u5 u2) u6) u4, max (max (max u1 u3) u6) u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.{u3, u1, u5, u6} C _inst_1 W E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.instCategoryFunctorsInverting.{u3, u1, u5, u6} C _inst_1 W E _inst_3)
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.functor_equivalence CategoryTheory.Localization.functorEquivalenceₓ'. -/
 /-- The equivalence of categories `(D ⥤ E) ≌ (W.functors_inverting E)` induced by
 the composition with a localization functor `L : C ⥤ D` with respect to
 `W : morphism_property C`. -/
@@ -297,12 +255,6 @@ def functorEquivalence : D ⥤ E ≌ W.FunctorsInverting E :=
 
 include W
 
-/- warning: category_theory.localization.whiskering_left_functor' -> CategoryTheory.Localization.whiskeringLeftFunctor' is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Functor.{max u2 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3)
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D], (CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) -> (CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) -> (forall (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E], CategoryTheory.Functor.{max u2 u6, max u1 u6, max (max (max u5 u2) u6) u4, max (max (max u5 u1) u6) u3} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3))
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.whiskering_left_functor' CategoryTheory.Localization.whiskeringLeftFunctor'ₓ'. -/
 /-- The functor `(D ⥤ E) ⥤ (C ⥤ E)` given by the composition with a localization
 functor `L : C ⥤ D` with respect to `W : morphism_property C`. -/
 @[nolint unused_arguments]
@@ -310,12 +262,6 @@ def whiskeringLeftFunctor' : (D ⥤ E) ⥤ C ⥤ E :=
   (whiskeringLeft C D E).obj L
 #align category_theory.localization.whiskering_left_functor' CategoryTheory.Localization.whiskeringLeftFunctor'
 
-/- warning: category_theory.localization.whiskering_left_functor'_eq -> CategoryTheory.Localization.whiskeringLeftFunctor'_eq is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], Eq.{succ (max (max u2 u6) (max u1 u6) (max u4 u6 u2 u5) u3 u6 u1 u5)} (CategoryTheory.Functor.{max u2 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.Localization.whiskeringLeftFunctor'.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4) (CategoryTheory.Functor.comp.{max u2 u6, max u1 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.{u3, u1, u5, u6} C _inst_1 W E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.category.{u3, u5, u1, u6} C _inst_1 W E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Localization.whiskeringLeftFunctor.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4) (CategoryTheory.inducedFunctor.{max u1 u6, max u3 u6 u1 u5, max u3 u6 u1 u5} (CategoryTheory.FullSubcategoryₓ.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (fun (F : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) => CategoryTheory.MorphismProperty.IsInvertedBy.{u3, u1, u5, u6} C _inst_1 E _inst_3 W F)) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.FullSubcategoryₓ.obj.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.MorphismProperty.IsInvertedBy.{u3, u1, u5, u6} C _inst_1 E _inst_3 W))))
-but is expected to have type
-  forall {C : Type.{u6}} {D : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u4, u6} C] [_inst_2 : CategoryTheory.Category.{u3, u5} D] (L : CategoryTheory.Functor.{u4, u3, u6, u5} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u4, u6} C _inst_1) (E : Type.{u2}) [_inst_3 : CategoryTheory.Category.{u1, u2} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u6, u5, u4, u3} C D _inst_1 _inst_2 L W], Eq.{max (max (max (max (max (succ u6) (succ u5)) (succ u4)) (succ u3)) (succ u2)) (succ u1)} (CategoryTheory.Functor.{max u5 u1, max u6 u1, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u3, u1, u5, u2} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u3, u1, u5, u2} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u1, u6, u2} C _inst_1 E _inst_3)) (CategoryTheory.Localization.whiskeringLeftFunctor'.{u6, u5, u4, u3, u2, u1} C D _inst_1 _inst_2 L W E _inst_3) (CategoryTheory.Functor.comp.{max u5 u1, max u6 u1, max u6 u1, max (max (max u5 u3) u2) u1, max (max (max u6 u4) u2) u1, max (max (max u6 u4) u2) u1} (CategoryTheory.Functor.{u3, u1, u5, u2} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u3, u1, u5, u2} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.{u4, u6, u2, u1} C _inst_1 W E _inst_3) (CategoryTheory.MorphismProperty.instCategoryFunctorsInverting.{u4, u6, u2, u1} C _inst_1 W E _inst_3) (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.Localization.whiskeringLeftFunctor.{u6, u5, u4, u3, u2, u1} C D _inst_1 _inst_2 L W E _inst_3 _inst_4) (CategoryTheory.inducedFunctor.{max u6 u1, max (max (max u6 u4) u2) u1, max (max (max u6 u4) u2) u1} (CategoryTheory.FullSubcategory.{max (max (max u6 u4) u2) u1} (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (fun (F : CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) => CategoryTheory.MorphismProperty.IsInvertedBy.{u4, u6, u2, u1} C _inst_1 E _inst_3 W F)) (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.FullSubcategory.obj.{max (max (max u6 u4) u2) u1} (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (fun (F : CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) => CategoryTheory.MorphismProperty.IsInvertedBy.{u4, u6, u2, u1} C _inst_1 E _inst_3 W F))))
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.whiskering_left_functor'_eq CategoryTheory.Localization.whiskeringLeftFunctor'_eqₓ'. -/
 theorem whiskeringLeftFunctor'_eq :
     whiskeringLeftFunctor' L W E = Localization.whiskeringLeftFunctor L W E ⋙ inducedFunctor _ :=
   rfl
@@ -323,12 +269,6 @@ theorem whiskeringLeftFunctor'_eq :
 
 variable {E}
 
-/- warning: category_theory.localization.whiskering_left_functor'_obj -> CategoryTheory.Localization.whiskeringLeftFunctor'_obj is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] (F : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3), Eq.{succ (max u3 u6 u1 u5)} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.obj.{max u2 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Localization.whiskeringLeftFunctor'.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4) F) (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F)
-but is expected to have type
-  forall {C : Type.{u2}} {D : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Category.{u6, u4} D] (L : CategoryTheory.Functor.{u1, u6, u2, u4} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u1, u2} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] (_inst_4 : CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3), Eq.{max (max (max (succ u2) (succ u1)) (succ u3)) (succ u5)} (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (Prefunctor.obj.{max (succ u4) (succ u5), max (succ u2) (succ u5), max (max (max u4 u6) u3) u5, max (max (max u2 u1) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3))) (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u5, max (max (max u2 u1) u3) u5} (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u5, max (max (max u2 u1) u3) u5} (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u1, u5, u2, u3} C _inst_1 E _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u4 u5, max u2 u5, max (max (max u4 u6) u3) u5, max (max (max u2 u1) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.Localization.whiskeringLeftFunctor'.{u2, u4, u1, u6, u3, u5} C D _inst_1 _inst_2 L W E _inst_3)) _inst_4) (CategoryTheory.Functor.comp.{u1, u6, u5, u2, u4, u3} C _inst_1 D _inst_2 E _inst_3 L _inst_4)
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.whiskering_left_functor'_obj CategoryTheory.Localization.whiskeringLeftFunctor'_objₓ'. -/
 @[simp]
 theorem whiskeringLeftFunctor'_obj (F : D ⥤ E) : (whiskeringLeftFunctor' L W E).obj F = L ⋙ F :=
   rfl
@@ -340,12 +280,6 @@ instance : Full (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor
 instance : Faithful (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor'_eq];
   infer_instance
 
-/- warning: category_theory.localization.nat_trans_ext -> CategoryTheory.Localization.natTrans_ext is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {F₁ : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3} {F₂ : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3} (τ : Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F₁ F₂), (forall (X : C), Eq.{succ u6} (Quiver.Hom.{succ u6, u5} E (CategoryTheory.CategoryStruct.toQuiver.{u6, u5} E (CategoryTheory.Category.toCategoryStruct.{u6, u5} E _inst_3)) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁ (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₂ (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X))) (CategoryTheory.NatTrans.app.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁ F₂ τ (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.NatTrans.app.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁ F₂ τ' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X))) -> (Eq.{succ (max u2 u6)} (Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F₁ F₂) τ τ')
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Category.{u6, u4} D] (L : CategoryTheory.Functor.{u2, u6, u1, u4} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u4, u2, u6} C D _inst_1 _inst_2 L W] {F₁ : CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3} {F₂ : CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3} (τ : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3))) F₁ F₂), (forall (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u3} E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (Prefunctor.obj.{succ u6, succ u5, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} D _inst_2 E _inst_3 F₁) (Prefunctor.obj.{succ u2, succ u6, u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u6, u1, u4} C _inst_1 D _inst_2 L) X)) (Prefunctor.obj.{succ u6, succ u5, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} D _inst_2 E _inst_3 F₂) (Prefunctor.obj.{succ u2, succ u6, u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u6, u1, u4} C _inst_1 D _inst_2 L) X))) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} D _inst_2 E _inst_3 F₁ F₂ τ (Prefunctor.obj.{succ u2, succ u6, u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u6, u1, u4} C _inst_1 D _inst_2 L) X)) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} D _inst_2 E _inst_3 F₁ F₂ τ' (Prefunctor.obj.{succ u2, succ u6, u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u6, u1, u4} C _inst_1 D _inst_2 L) X))) -> (Eq.{max (succ u4) (succ u5)} (Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3))) F₁ F₂) τ τ')
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_extₓ'. -/
 theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
     (h : ∀ X : C, τ.app (L.obj X) = τ'.app (L.obj X)) : τ = τ' :=
   by
@@ -354,12 +288,6 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
   rw [← cancel_epi (F₁.map (L.obj_obj_preimage_iso Y).Hom), τ.naturality, τ'.naturality, h]
 #align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
 
-/- warning: category_theory.localization.lifting -> CategoryTheory.Localization.Lifting is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) -> (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) -> Sort.{max (succ u1) (succ u6)}
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D], (CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) -> (forall {W : Type.{u5}} [E : CategoryTheory.Category.{u6, u5} W], (CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) -> (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 W E) -> (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 W E) -> Sort.{max (succ u1) (succ u6)})
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.lifting CategoryTheory.Localization.Liftingₓ'. -/
 /- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
@@ -416,9 +344,6 @@ def liftNatTrans (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting L W F₁
 #align category_theory.localization.lift_nat_trans CategoryTheory.Localization.liftNatTrans
 -/
 
-/- warning: category_theory.localization.lift_nat_trans_app -> CategoryTheory.Localization.liftNatTrans_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_appₓ'. -/
 @[simp]
 theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting L W F₁ F₁'] [Lifting L W F₂ F₂']
     (τ : F₁ ⟶ F₂) (X : C) :
@@ -427,9 +352,6 @@ theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting
   congr_app (Functor.image_preimage (whiskeringLeftFunctor' L W E) _) X
 #align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_app
 
-/- warning: category_theory.localization.comp_lift_nat_trans -> CategoryTheory.Localization.comp_liftNatTrans is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.comp_lift_nat_trans CategoryTheory.Localization.comp_liftNatTransₓ'. -/
 @[simp, reassoc]
 theorem comp_liftNatTrans (F₁ F₂ F₃ : C ⥤ E) (F₁' F₂' F₃' : D ⥤ E) [h₁ : Lifting L W F₁ F₁']
     [h₂ : Lifting L W F₂ F₂'] [h₃ : Lifting L W F₃ F₃'] (τ : F₁ ⟶ F₂) (τ' : F₂ ⟶ F₃) :
@@ -439,12 +361,6 @@ theorem comp_liftNatTrans (F₁ F₂ F₃ : C ⥤ E) (F₁' F₂' F₃' : D ⥤
     simp only [nat_trans.comp_app, lift_nat_trans_app, assoc, iso.inv_hom_id_app_assoc]
 #align category_theory.localization.comp_lift_nat_trans CategoryTheory.Localization.comp_liftNatTrans
 
-/- warning: category_theory.localization.lift_nat_trans_id -> CategoryTheory.Localization.liftNatTrans_id is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] (F : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [h : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F F'], Eq.{succ (max u2 u6)} (Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F' F') (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F F F' F' h h (CategoryTheory.CategoryStruct.id.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3)) F)) (CategoryTheory.CategoryStruct.id.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3)) F')
-but is expected to have type
-  forall {C : Type.{u4}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u6, u2, u4, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u6, u4} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u4, u1, u6, u2} C D _inst_1 _inst_2 L W] (F : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) [h : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F F'], Eq.{max (succ u1) (succ u5)} (Quiver.Hom.{max (succ u1) (succ u5), max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3))) F' F') (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F F F' F' h h (CategoryTheory.CategoryStruct.id.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3)) F)) (CategoryTheory.CategoryStruct.id.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3)) F')
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.lift_nat_trans_id CategoryTheory.Localization.liftNatTrans_idₓ'. -/
 @[simp]
 theorem liftNatTrans_id (F : C ⥤ E) (F' : D ⥤ E) [h : Lifting L W F F'] :
     liftNatTrans L W F F F' F' (𝟙 F) = 𝟙 F' :=
@@ -467,12 +383,6 @@ def liftNatIso (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [h₁ : Lifting L W
 
 namespace Lifting
 
-/- warning: category_theory.localization.lifting.comp_right -> CategoryTheory.Localization.Lifting.compRight is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {E' : Type.{u7}} [_inst_5 : CategoryTheory.Category.{u8, u7} E'] (F : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [_inst_6 : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F F'] (G : CategoryTheory.Functor.{u6, u8, u5, u7} E _inst_3 E' _inst_5), CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u7, u8} C D _inst_1 _inst_2 L W E' _inst_5 _inst_4 (CategoryTheory.Functor.comp.{u3, u6, u8, u1, u5, u7} C _inst_1 E _inst_3 E' _inst_5 F G) (CategoryTheory.Functor.comp.{u4, u6, u8, u2, u5, u7} D _inst_2 E _inst_3 E' _inst_5 F' G)
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] {_inst_4 : Type.{u7}} [E' : CategoryTheory.Category.{u8, u7} _inst_4] (_inst_5 : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [F' : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L E _inst_3 W _inst_5 F] (_inst_6 : CategoryTheory.Functor.{u6, u8, u5, u7} E _inst_3 _inst_4 E'), CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u7, u8} C D _inst_1 _inst_2 L _inst_4 E' W (CategoryTheory.Functor.comp.{u3, u6, u8, u1, u5, u7} C _inst_1 E _inst_3 _inst_4 E' _inst_5 _inst_6) (CategoryTheory.Functor.comp.{u4, u6, u8, u2, u5, u7} D _inst_2 E _inst_3 _inst_4 E' F _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.lifting.comp_right CategoryTheory.Localization.Lifting.compRightₓ'. -/
 @[simps]
 instance compRight {E' : Type _} [Category E'] (F : C ⥤ E) (F' : D ⥤ E) [Lifting L W F F']
     (G : E ⥤ E') : Lifting L W (F ⋙ G) (F' ⋙ G) :=
@@ -486,12 +396,6 @@ instance id : Lifting L W L (𝟭 D) :=
 #align category_theory.localization.lifting.id CategoryTheory.Localization.Lifting.id
 -/
 
-/- warning: category_theory.localization.lifting.of_isos -> CategoryTheory.Localization.Lifting.ofIsos is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {F₁ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3} {F₂ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3} {F₁' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3} {F₂' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3}, (CategoryTheory.Iso.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) F₁ F₂) -> (CategoryTheory.Iso.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) F₁' F₂') -> (forall [_inst_5 : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₁'], CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₂')
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] {_inst_4 : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3} {F₁ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3} {F₂ : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3} {F₁' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3}, (CategoryTheory.Iso.{max u1 u6, max (max (max u1 u3) u5) u6} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) _inst_4 F₁) -> (CategoryTheory.Iso.{max u2 u6, max (max (max u2 u4) u5) u6} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) F₂ F₁') -> (forall [e' : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L E _inst_3 W _inst_4 F₂], CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L E _inst_3 W F₁ F₁')
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.lifting.of_isos CategoryTheory.Localization.Lifting.ofIsosₓ'. -/
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C`,
 if `F₁' : D ⥤ E` lifts a functor `F₁ : C ⥤ D`, then a functor `F₂'` which
 is isomorphic to `F₁'` also lifts a functor `F₂` that is isomorphic to `F₁`.  -/
@@ -511,12 +415,6 @@ namespace IsLocalization
 
 open Localization
 
-/- warning: category_theory.functor.is_localization.of_iso -> CategoryTheory.Functor.IsLocalization.of_iso is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {L₁ : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2} {L₂ : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2}, (CategoryTheory.Iso.{max u1 u4, max u3 u4 u1 u2} (CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} C _inst_1 D _inst_2) L₁ L₂) -> (forall [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L₁ W], CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L₂ W)
-but is expected to have type
-  forall {C : Type.{u2}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u2} C] [_inst_2 : CategoryTheory.Category.{u3, u1} D] (W : CategoryTheory.MorphismProperty.{u4, u2} C _inst_1) {L₁ : CategoryTheory.Functor.{u4, u3, u2, u1} C _inst_1 D _inst_2} {L₂ : CategoryTheory.Functor.{u4, u3, u2, u1} C _inst_1 D _inst_2}, (CategoryTheory.Iso.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u4, u3, u2, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u2, u1} C _inst_1 D _inst_2) L₁ L₂) -> (forall [_inst_4 : CategoryTheory.Functor.IsLocalization.{u2, u1, u4, u3} C D _inst_1 _inst_2 L₁ W], CategoryTheory.Functor.IsLocalization.{u2, u1, u4, u3} C D _inst_1 _inst_2 L₂ W)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_localization.of_iso CategoryTheory.Functor.IsLocalization.of_isoₓ'. -/
 theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W] : L₂.IsLocalization W :=
   by
   have h := localization.inverts L₁ W
@@ -529,12 +427,6 @@ theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W]
         Nonempty.intro (is_equivalence.of_iso (lift_nat_iso W.Q W L₁ L₂ F₁ F₂ e) inferInstance) }
 #align category_theory.functor.is_localization.of_iso CategoryTheory.Functor.IsLocalization.of_iso
 
-/- warning: category_theory.functor.is_localization.of_equivalence_target -> CategoryTheory.Functor.IsLocalization.of_equivalence_target is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_4 : CategoryTheory.Category.{u6, u5} E] (L' : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_4) (eq : CategoryTheory.Equivalence.{u4, u6, u2, u5} D _inst_2 E _inst_4) [_inst_5 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], (CategoryTheory.Iso.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_4) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_4) (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_4 L (CategoryTheory.Equivalence.functor.{u4, u6, u2, u5} D _inst_2 E _inst_4 eq)) L') -> (CategoryTheory.Functor.IsLocalization.{u1, u5, u3, u6} C E _inst_1 _inst_4 L' W)
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u4, u2, u3, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u4, u3} C _inst_1) {E : Type.{u6}} [_inst_4 : CategoryTheory.Category.{u5, u6} E] (L' : CategoryTheory.Functor.{u4, u5, u3, u6} C _inst_1 E _inst_4) (eq : CategoryTheory.Equivalence.{u2, u5, u1, u6} D E _inst_2 _inst_4) [_inst_5 : CategoryTheory.Functor.IsLocalization.{u3, u1, u4, u2} C D _inst_1 _inst_2 L W], (CategoryTheory.Iso.{max u3 u5, max (max (max u6 u3) u5) u4} (CategoryTheory.Functor.{u4, u5, u3, u6} C _inst_1 E _inst_4) (CategoryTheory.Functor.category.{u4, u5, u3, u6} C _inst_1 E _inst_4) (CategoryTheory.Functor.comp.{u4, u2, u5, u3, u1, u6} C _inst_1 D _inst_2 E _inst_4 L (CategoryTheory.Equivalence.functor.{u2, u5, u1, u6} D E _inst_2 _inst_4 eq)) L') -> (CategoryTheory.Functor.IsLocalization.{u3, u6, u4, u5} C E _inst_1 _inst_4 L' W)
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_localization.of_equivalence_target CategoryTheory.Functor.IsLocalization.of_equivalence_targetₓ'. -/
 /-- If `L : C ⥤ D` is a localization for `W : morphism_property C`, then it is also
 the case of a functor obtained by post-composing `L` with an equivalence of categories. -/
 theorem of_equivalence_target {E : Type _} [Category E] (L' : C ⥤ E) (eq : D ≌ E)
Diff
@@ -66,11 +66,8 @@ instance q_isLocalization : W.Q.IsLocalization W
   inverts := W.Q_inverts
   nonempty_isEquivalence :=
     by
-    suffices localization.construction.lift W.Q W.Q_inverts = 𝟭 _
-      by
-      apply Nonempty.intro
-      rw [this]
-      infer_instance
+    suffices localization.construction.lift W.Q W.Q_inverts = 𝟭 _ by apply Nonempty.intro;
+      rw [this]; infer_instance
     apply localization.construction.uniq
     simpa only [localization.construction.fac]
 #align category_theory.functor.Q_is_localization CategoryTheory.Functor.q_isLocalization
@@ -117,13 +114,8 @@ def strictUniversalPropertyFixedTargetId (hW : W ⊆ MorphismProperty.isomorphis
     where
   inverts X Y f hf := hW f hf
   lift F hF := F
-  fac F hF := by
-    cases F
-    rfl
-  uniq F₁ F₂ eq := by
-    cases F₁
-    cases F₂
-    exact Eq
+  fac F hF := by cases F; rfl
+  uniq F₁ F₂ eq := by cases F₁; cases F₂; exact Eq
 #align category_theory.localization.strict_universal_property_fixed_target_id CategoryTheory.Localization.strictUniversalPropertyFixedTargetId
 -/
 
@@ -342,14 +334,10 @@ theorem whiskeringLeftFunctor'_obj (F : D ⥤ E) : (whiskeringLeftFunctor' L W E
   rfl
 #align category_theory.localization.whiskering_left_functor'_obj CategoryTheory.Localization.whiskeringLeftFunctor'_obj
 
-instance : Full (whiskeringLeftFunctor' L W E) :=
-  by
-  rw [whiskering_left_functor'_eq]
+instance : Full (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor'_eq];
   infer_instance
 
-instance : Faithful (whiskeringLeftFunctor' L W E) :=
-  by
-  rw [whiskering_left_functor'_eq]
+instance : Faithful (whiskeringLeftFunctor' L W E) := by rw [whiskering_left_functor'_eq];
   infer_instance
 
 /- warning: category_theory.localization.nat_trans_ext -> CategoryTheory.Localization.natTrans_ext is a dubious translation:
Diff
@@ -429,10 +429,7 @@ def liftNatTrans (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting L W F₁
 -/
 
 /- warning: category_theory.localization.lift_nat_trans_app -> CategoryTheory.Localization.liftNatTrans_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [_inst_5 : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₁'] [_inst_6 : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₂'] (τ : Quiver.Hom.{succ (max u1 u6), max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3))) F₁ F₂) (X : C), Eq.{succ u6} (Quiver.Hom.{succ u6, u5} E (CategoryTheory.CategoryStruct.toQuiver.{u6, u5} E (CategoryTheory.Category.toCategoryStruct.{u6, u5} E _inst_3)) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₂' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X))) (CategoryTheory.NatTrans.app.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁' F₂' (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' _inst_5 _inst_6 τ) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.CategoryStruct.comp.{u6, u5} E (CategoryTheory.Category.toCategoryStruct.{u6, u5} E _inst_3) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.Functor.obj.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₁ X) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₂' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.NatTrans.app.{u3, u6, u1, u5} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F₁') F₁ (CategoryTheory.Iso.hom.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F₁') F₁ (CategoryTheory.Localization.Lifting.iso.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₁' _inst_5)) X) (CategoryTheory.CategoryStruct.comp.{u6, u5} E (CategoryTheory.Category.toCategoryStruct.{u6, u5} E _inst_3) (CategoryTheory.Functor.obj.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₁ X) (CategoryTheory.Functor.obj.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₂ X) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₂' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.NatTrans.app.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₁ F₂ τ X) (CategoryTheory.NatTrans.app.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₂ (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F₂') (CategoryTheory.Iso.inv.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F₂') F₂ (CategoryTheory.Localization.Lifting.iso.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₂' _inst_6)) X)))
-but is expected to have type
-  forall {C : Type.{u4}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u6, u2, u4, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u6, u4} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u4, u1, u6, u2} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) [_inst_5 : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₁ F₁'] [_inst_6 : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₂ F₂'] (τ : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3))) F₁ F₂) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u3} E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (Prefunctor.obj.{succ u2, succ u5, u1, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u5, u1, u3} D _inst_2 E _inst_3 F₁') (Prefunctor.obj.{succ u6, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u6, u2, u4, u1} C _inst_1 D _inst_2 L) X)) (Prefunctor.obj.{succ u2, succ u5, u1, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u5, u1, u3} D _inst_2 E _inst_3 F₂') (Prefunctor.obj.{succ u6, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u6, u2, u4, u1} C _inst_1 D _inst_2 L) X))) (CategoryTheory.NatTrans.app.{u2, u5, u1, u3} D _inst_2 E _inst_3 F₁' F₂' (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' _inst_5 _inst_6 τ) (Prefunctor.obj.{succ u6, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u6, u2, u4, u1} C _inst_1 D _inst_2 L) X)) (CategoryTheory.CategoryStruct.comp.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₁')) X) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₁) X) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₂')) X) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₁') F₁ (CategoryTheory.Iso.hom.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₁') F₁ (CategoryTheory.Localization.Lifting.iso.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 F₁ F₁' _inst_5)) X) (CategoryTheory.CategoryStruct.comp.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₁) X) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₂) X) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₂')) X) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₁ F₂ τ X) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₂ (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₂') (CategoryTheory.Iso.inv.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₂') F₂ (CategoryTheory.Localization.Lifting.iso.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 F₂ F₂' _inst_6)) X)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_appₓ'. -/
 @[simp]
 theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting L W F₁ F₁'] [Lifting L W F₂ F₂']
@@ -443,10 +440,7 @@ theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting
 #align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_app
 
 /- warning: category_theory.localization.comp_lift_nat_trans -> CategoryTheory.Localization.comp_liftNatTrans is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₃ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (F₃' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [h₁ : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₁'] [h₂ : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₂'] [h₃ : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₃ F₃'] (τ : Quiver.Hom.{succ (max u1 u6), max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{succ (max u1 u6), max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3))) F₂ F₃), Eq.{succ (max u2 u6)} (Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F₁' F₃') (CategoryTheory.CategoryStruct.comp.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3)) F₁' F₂' F₃' (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' h₁ h₂ τ) (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₃ F₂' F₃' h₂ h₃ τ')) (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₃ F₁' F₃' h₁ h₃ (CategoryTheory.CategoryStruct.comp.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3)) F₁ F₂ F₃ τ τ'))
-but is expected to have type
-  forall {C : Type.{u4}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u6, u2, u4, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u6, u4} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u4, u1, u6, u2} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₃ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (F₃' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) [h₁ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₁ F₁'] [h₂ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₂ F₂'] [h₃ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₃ F₃'] (τ : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3))) F₂ F₃), Eq.{max (succ u1) (succ u5)} (Quiver.Hom.{succ (max u1 u5), max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3))) F₁' F₃') (CategoryTheory.CategoryStruct.comp.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3)) F₁' F₂' F₃' (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' h₁ h₂ τ) (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₃ F₂' F₃' h₂ h₃ τ')) (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₃ F₁' F₃' h₁ h₃ (CategoryTheory.CategoryStruct.comp.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3)) F₁ F₂ F₃ τ τ'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.localization.comp_lift_nat_trans CategoryTheory.Localization.comp_liftNatTransₓ'. -/
 @[simp, reassoc]
 theorem comp_liftNatTrans (F₁ F₂ F₃ : C ⥤ E) (F₁' F₂' F₃' : D ⥤ E) [h₁ : Lifting L W F₁ F₁']
Diff
@@ -448,7 +448,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u4}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u6, u2, u4, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u6, u4} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u4, u1, u6, u2} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₃ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (F₃' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) [h₁ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₁ F₁'] [h₂ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₂ F₂'] [h₃ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₃ F₃'] (τ : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3))) F₂ F₃), Eq.{max (succ u1) (succ u5)} (Quiver.Hom.{succ (max u1 u5), max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3))) F₁' F₃') (CategoryTheory.CategoryStruct.comp.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3)) F₁' F₂' F₃' (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' h₁ h₂ τ) (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₃ F₂' F₃' h₂ h₃ τ')) (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₃ F₁' F₃' h₁ h₃ (CategoryTheory.CategoryStruct.comp.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3)) F₁ F₂ F₃ τ τ'))
 Case conversion may be inaccurate. Consider using '#align category_theory.localization.comp_lift_nat_trans CategoryTheory.Localization.comp_liftNatTransₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem comp_liftNatTrans (F₁ F₂ F₃ : C ⥤ E) (F₁' F₂' F₃' : D ⥤ E) [h₁ : Lifting L W F₁ F₁']
     [h₂ : Lifting L W F₂ F₂'] [h₃ : Lifting L W F₃ F₃'] (τ : F₁ ⟶ F₂) (τ' : F₂ ⟶ F₃) :
     liftNatTrans L W F₁ F₂ F₁' F₂' τ ≫ liftNatTrans L W F₂ F₃ F₂' F₃' τ' =
Diff
@@ -372,7 +372,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D], (CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) -> (forall {W : Type.{u5}} [E : CategoryTheory.Category.{u6, u5} W], (CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) -> (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 W E) -> (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 W E) -> Sort.{max (succ u1) (succ u6)})
 Case conversion may be inaccurate. Consider using '#align category_theory.localization.lifting CategoryTheory.Localization.Liftingₓ'. -/
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
 is commutative up to an isomorphism. -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
 
 ! This file was ported from Lean 3 source module category_theory.localization.predicate
-! leanprover-community/mathlib commit 8efef279998820353694feb6ff5631ed0d309ecc
+! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
 ! 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.Localization.Construction
 
 # Predicate for localized categories
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file, a predicate `L.is_localization W` is introduced for a functor `L : C ⥤ D`
 and `W : morphism_property C`: it expresses that `L` identifies `D` with the localized
 category of `C` with respect to `W` (up to equivalence).
Diff
@@ -47,6 +47,7 @@ variable {C D : Type _} [Category C] [Category D] (L : C ⥤ D) (W : MorphismPro
 
 namespace Functor
 
+#print CategoryTheory.Functor.IsLocalization /-
 /-- The predicate expressing that, up to equivalence, a functor `L : C ⥤ D`
 identifies the category `D` with the localized category of `C` with respect
 to `W : morphism_property C`. -/
@@ -54,7 +55,9 @@ class IsLocalization : Prop where
   inverts : W.IsInvertedBy L
   nonempty_isEquivalence : Nonempty (IsEquivalence (Localization.Construction.lift L inverts))
 #align category_theory.functor.is_localization CategoryTheory.Functor.IsLocalization
+-/
 
+#print CategoryTheory.Functor.q_isLocalization /-
 instance q_isLocalization : W.Q.IsLocalization W
     where
   inverts := W.Q_inverts
@@ -68,11 +71,13 @@ instance q_isLocalization : W.Q.IsLocalization W
     apply localization.construction.uniq
     simpa only [localization.construction.fac]
 #align category_theory.functor.Q_is_localization CategoryTheory.Functor.q_isLocalization
+-/
 
 end Functor
 
 namespace Localization
 
+#print CategoryTheory.Localization.StrictUniversalPropertyFixedTarget /-
 /-- This universal property states that a functor `L : C ⥤ D` inverts morphisms
 in `W` and the all functors `D ⥤ E` (for a fixed category `E`) uniquely factors
 through `L`. -/
@@ -82,7 +87,9 @@ structure StrictUniversalPropertyFixedTarget where
   fac : ∀ (F : C ⥤ E) (hF : W.IsInvertedBy F), L ⋙ lift F hF = F
   uniq : ∀ (F₁ F₂ : D ⥤ E) (h : L ⋙ F₁ = L ⋙ F₂), F₁ = F₂
 #align category_theory.localization.strict_universal_property_fixed_target CategoryTheory.Localization.StrictUniversalPropertyFixedTarget
+-/
 
+#print CategoryTheory.Localization.strictUniversalPropertyFixedTargetQ /-
 /-- The localized category `W.localization` that was constructed satisfies
 the universal property of the localization. -/
 @[simps]
@@ -93,10 +100,12 @@ def strictUniversalPropertyFixedTargetQ : StrictUniversalPropertyFixedTarget W.Q
   fac := Construction.fac
   uniq := Construction.uniq
 #align category_theory.localization.strict_universal_property_fixed_target_Q CategoryTheory.Localization.strictUniversalPropertyFixedTargetQ
+-/
 
 instance : Inhabited (StrictUniversalPropertyFixedTarget W.Q W E) :=
   ⟨strictUniversalPropertyFixedTargetQ _ _⟩
 
+#print CategoryTheory.Localization.strictUniversalPropertyFixedTargetId /-
 /-- When `W` consists of isomorphisms, the identity satisfies the universal property
 of the localization. -/
 @[simps]
@@ -113,11 +122,18 @@ def strictUniversalPropertyFixedTargetId (hW : W ⊆ MorphismProperty.isomorphis
     cases F₂
     exact Eq
 #align category_theory.localization.strict_universal_property_fixed_target_id CategoryTheory.Localization.strictUniversalPropertyFixedTargetId
+-/
 
 end Localization
 
 namespace Functor
 
+/- warning: category_theory.functor.is_localization.mk' -> CategoryTheory.Functor.IsLocalization.mk' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1), (CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.{u1, u2, u3, u4, u2, u4} C D _inst_1 _inst_2 L W D _inst_2) -> (CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.{u1, u2, u3, u4, u1, max u1 u3} C D _inst_1 _inst_2 L W (CategoryTheory.MorphismProperty.Localization.{u1, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u3} C _inst_1 W)) -> (CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W)
+but is expected to have type
+  forall {C : Type.{u4}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u4} C] [_inst_2 : CategoryTheory.Category.{u1, u3} D] (L : CategoryTheory.Functor.{u2, u1, u4, u3} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u2, u4} C _inst_1), (CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.{u4, u3, u2, u1, u3, u1} C D _inst_1 _inst_2 L W D _inst_2) -> (CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.{u4, u3, u2, u1, u4, max u4 u2} C D _inst_1 _inst_2 L W (CategoryTheory.MorphismProperty.Localization.{u4, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u2} C _inst_1 W)) -> (CategoryTheory.Functor.IsLocalization.{u4, u3, u2, u1} C D _inst_1 _inst_2 L W)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_localization.mk' CategoryTheory.Functor.IsLocalization.mk'ₓ'. -/
 theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarget L W D)
     (h₂ : Localization.StrictUniversalPropertyFixedTarget L W W.Localization) :
     IsLocalization L W :=
@@ -142,6 +158,12 @@ theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarg
               eq_to_hom_refl] } }
 #align category_theory.functor.is_localization.mk' CategoryTheory.Functor.IsLocalization.mk'
 
+/- warning: category_theory.functor.is_localization.for_id -> CategoryTheory.Functor.IsLocalization.for_id is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1), (HasSubset.Subset.{max u1 u2} (CategoryTheory.MorphismProperty.{u2, u1} C _inst_1) (CategoryTheory.MorphismProperty.hasSubset.{u2, u1} C _inst_1) W (CategoryTheory.MorphismProperty.isomorphisms.{u2, u1} C _inst_1)) -> (CategoryTheory.Functor.IsLocalization.{u1, u1, u2, u2} C C _inst_1 _inst_1 (CategoryTheory.Functor.id.{u2, u1} C _inst_1) W)
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (W : CategoryTheory.MorphismProperty.{u1, u2} C _inst_1), (HasSubset.Subset.{max u2 u1} (CategoryTheory.MorphismProperty.{u1, u2} C _inst_1) (CategoryTheory.MorphismProperty.instHasSubsetMorphismProperty.{u1, u2} C _inst_1) W (CategoryTheory.MorphismProperty.isomorphisms.{u1, u2} C _inst_1)) -> (CategoryTheory.Functor.IsLocalization.{u2, u2, u1, u1} C C _inst_1 _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) W)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_localization.for_id CategoryTheory.Functor.IsLocalization.for_idₓ'. -/
 theorem IsLocalization.for_id (hW : W ⊆ MorphismProperty.isomorphisms C) : (𝟭 C).IsLocalization W :=
   IsLocalization.mk' _ _ (Localization.strictUniversalPropertyFixedTargetId W _ hW)
     (Localization.strictUniversalPropertyFixedTargetId W _ hW)
@@ -153,10 +175,22 @@ namespace Localization
 
 variable [L.IsLocalization W]
 
+/- warning: category_theory.localization.inverts -> CategoryTheory.Localization.inverts is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.MorphismProperty.IsInvertedBy.{u3, u1, u2, u4} C _inst_1 D _inst_2 W L
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u4, u3} C] [_inst_2 : CategoryTheory.Category.{u1, u2} D] (L : CategoryTheory.Functor.{u4, u1, u3, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u4, u3} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u3, u2, u4, u1} C D _inst_1 _inst_2 L W], CategoryTheory.MorphismProperty.IsInvertedBy.{u4, u3, u2, u1} C _inst_1 D _inst_2 W L
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.inverts CategoryTheory.Localization.invertsₓ'. -/
 theorem inverts : W.IsInvertedBy L :=
   (inferInstance : L.IsLocalization W).inverts
 #align category_theory.localization.inverts CategoryTheory.Localization.inverts
 
+/- warning: category_theory.localization.iso_of_hom -> CategoryTheory.Localization.isoOfHom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {X : C} {Y : C} (f : Quiver.Hom.{succ u3, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} C (CategoryTheory.Category.toCategoryStruct.{u3, u1} C _inst_1)) X Y), (W X Y f) -> (CategoryTheory.Iso.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L Y))
+but is expected to have type
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {X : C} {Y : C} (f : Quiver.Hom.{succ u3, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} C (CategoryTheory.Category.toCategoryStruct.{u3, u1} C _inst_1)) X Y), (W X Y f) -> (CategoryTheory.Iso.{u4, u2} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} C (CategoryTheory.Category.toCategoryStruct.{u3, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} D (CategoryTheory.Category.toCategoryStruct.{u4, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} C _inst_1 D _inst_2 L) X) (Prefunctor.obj.{succ u3, succ u4, u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u1} C (CategoryTheory.Category.toCategoryStruct.{u3, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u2} D (CategoryTheory.Category.toCategoryStruct.{u4, u2} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u1, u2} C _inst_1 D _inst_2 L) Y))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.iso_of_hom CategoryTheory.Localization.isoOfHomₓ'. -/
 /-- The isomorphism `L.obj X ≅ L.obj Y` that is deduced from a morphism `f : X ⟶ Y` which
 belongs to `W`, when `L.is_localization W`. -/
 @[simps]
@@ -168,6 +202,12 @@ def isoOfHom {X Y : C} (f : X ⟶ Y) (hf : W f) : L.obj X ≅ L.obj Y :=
 instance : IsEquivalence (Localization.Construction.lift L (inverts L W)) :=
   (inferInstance : L.IsLocalization W).nonempty_isEquivalence.some
 
+/- warning: category_theory.localization.equivalence_from_model -> CategoryTheory.Localization.equivalenceFromModel is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Equivalence.{max u1 u3, u4, u1, u2} (CategoryTheory.MorphismProperty.Localization.{u1, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u3} C _inst_1 W) D _inst_2
+but is expected to have type
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Equivalence.{max u1 u3, u4, u1, u2} (CategoryTheory.MorphismProperty.Localization.{u1, u3} C _inst_1 W) D (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u3} C _inst_1 W) _inst_2
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.equivalence_from_model CategoryTheory.Localization.equivalenceFromModelₓ'. -/
 /-- A chosen equivalence of categories `W.localization ≅ D` for a functor
 `L : C ⥤ D` which satisfies `L.is_localization W`. This shall be used in
 order to deduce properties of `L` from properties of `W.Q`. -/
@@ -175,12 +215,15 @@ def equivalenceFromModel : W.Localization ≌ D :=
   (Localization.Construction.lift L (inverts L W)).asEquivalence
 #align category_theory.localization.equivalence_from_model CategoryTheory.Localization.equivalenceFromModel
 
+#print CategoryTheory.Localization.qCompEquivalenceFromModelFunctorIso /-
 /-- Via the equivalence of categories `equivalence_from_model L W : W.localization ≌ D`,
 one may identify the functors `W.Q` and `L`. -/
 def qCompEquivalenceFromModelFunctorIso : W.Q ⋙ (equivalenceFromModel L W).Functor ≅ L :=
   eqToIso (Construction.fac _ _)
 #align category_theory.localization.Q_comp_equivalence_from_model_functor_iso CategoryTheory.Localization.qCompEquivalenceFromModelFunctorIso
+-/
 
+#print CategoryTheory.Localization.compEquivalenceFromModelInverseIso /-
 /-- Via the equivalence of categories `equivalence_from_model L W : W.localization ≌ D`,
 one may identify the functors `L` and `W.Q`. -/
 def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).inverse ≅ W.Q :=
@@ -193,7 +236,14 @@ def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).invers
     _ ≅ W.Q := Functor.rightUnitor _
     
 #align category_theory.localization.comp_equivalence_from_model_inverse_iso CategoryTheory.Localization.compEquivalenceFromModelInverseIso
+-/
 
+/- warning: category_theory.localization.ess_surj -> CategoryTheory.Localization.essSurj is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.EssSurj.{u3, u4, u1, u2} C D _inst_1 _inst_2 L
+but is expected to have type
+  forall {C : Type.{u2}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u2} C] [_inst_2 : CategoryTheory.Category.{u3, u1} D] (L : CategoryTheory.Functor.{u4, u3, u2, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u4, u2} C _inst_1) [_inst_4 : CategoryTheory.Functor.IsLocalization.{u2, u1, u4, u3} C D _inst_1 _inst_2 L W], CategoryTheory.EssSurj.{u4, u3, u2, u1} C D _inst_1 _inst_2 L
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.ess_surj CategoryTheory.Localization.essSurjₓ'. -/
 theorem essSurj : EssSurj L :=
   ⟨fun X =>
     ⟨(Construction.objEquiv W).invFun ((equivalenceFromModel L W).inverse.obj X),
@@ -202,12 +252,14 @@ theorem essSurj : EssSurj L :=
           (equivalenceFromModel L W).counitIso.app X)⟩⟩
 #align category_theory.localization.ess_surj CategoryTheory.Localization.essSurj
 
+#print CategoryTheory.Localization.whiskeringLeftFunctor /-
 /-- The functor `(D ⥤ E) ⥤ W.functors_inverting E` induced by the composition
 with a localization functor `L : C ⥤ D` with respect to `W : morphism_property C`. -/
 def whiskeringLeftFunctor : (D ⥤ E) ⥤ W.FunctorsInverting E :=
   FullSubcategory.lift _ ((whiskeringLeft _ _ E).obj L)
     (MorphismProperty.IsInvertedBy.of_comp W L (inverts L W))
 #align category_theory.localization.whiskering_left_functor CategoryTheory.Localization.whiskeringLeftFunctor
+-/
 
 instance : IsEquivalence (whiskeringLeftFunctor L W E) :=
   by
@@ -235,6 +287,12 @@ instance : IsEquivalence (whiskeringLeftFunctor L W E) :=
         change (W.Q ⋙ localization.construction.lift L (inverts L W)) ⋙ _ = L ⋙ _
         rw [construction.fac]
 
+/- warning: category_theory.localization.functor_equivalence -> CategoryTheory.Localization.functorEquivalence is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Equivalence.{max u2 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.{u3, u1, u5, u6} C _inst_1 W E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.category.{u3, u5, u1, u6} C _inst_1 W E _inst_3)
+but is expected to have type
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Equivalence.{max u2 u6, max u1 u6, max (max (max u5 u2) u6) u4, max (max (max u1 u3) u6) u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.{u3, u1, u5, u6} C _inst_1 W E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.instCategoryFunctorsInverting.{u3, u1, u5, u6} C _inst_1 W E _inst_3)
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.functor_equivalence CategoryTheory.Localization.functorEquivalenceₓ'. -/
 /-- The equivalence of categories `(D ⥤ E) ≌ (W.functors_inverting E)` induced by
 the composition with a localization functor `L : C ⥤ D` with respect to
 `W : morphism_property C`. -/
@@ -244,6 +302,12 @@ def functorEquivalence : D ⥤ E ≌ W.FunctorsInverting E :=
 
 include W
 
+/- warning: category_theory.localization.whiskering_left_functor' -> CategoryTheory.Localization.whiskeringLeftFunctor' is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], CategoryTheory.Functor.{max u2 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3)
+but is expected to have type
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D], (CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) -> (CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) -> (forall (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E], CategoryTheory.Functor.{max u2 u6, max u1 u6, max (max (max u5 u2) u6) u4, max (max (max u5 u1) u6) u3} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.whiskering_left_functor' CategoryTheory.Localization.whiskeringLeftFunctor'ₓ'. -/
 /-- The functor `(D ⥤ E) ⥤ (C ⥤ E)` given by the composition with a localization
 functor `L : C ⥤ D` with respect to `W : morphism_property C`. -/
 @[nolint unused_arguments]
@@ -251,6 +315,12 @@ def whiskeringLeftFunctor' : (D ⥤ E) ⥤ C ⥤ E :=
   (whiskeringLeft C D E).obj L
 #align category_theory.localization.whiskering_left_functor' CategoryTheory.Localization.whiskeringLeftFunctor'
 
+/- warning: category_theory.localization.whiskering_left_functor'_eq -> CategoryTheory.Localization.whiskeringLeftFunctor'_eq is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) (E : Type.{u5}) [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], Eq.{succ (max (max u2 u6) (max u1 u6) (max u4 u6 u2 u5) u3 u6 u1 u5)} (CategoryTheory.Functor.{max u2 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3)) (CategoryTheory.Localization.whiskeringLeftFunctor'.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4) (CategoryTheory.Functor.comp.{max u2 u6, max u1 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.{u3, u1, u5, u6} C _inst_1 W E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.category.{u3, u5, u1, u6} C _inst_1 W E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Localization.whiskeringLeftFunctor.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4) (CategoryTheory.inducedFunctor.{max u1 u6, max u3 u6 u1 u5, max u3 u6 u1 u5} (CategoryTheory.FullSubcategoryₓ.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (fun (F : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) => CategoryTheory.MorphismProperty.IsInvertedBy.{u3, u1, u5, u6} C _inst_1 E _inst_3 W F)) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.FullSubcategoryₓ.obj.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.MorphismProperty.IsInvertedBy.{u3, u1, u5, u6} C _inst_1 E _inst_3 W))))
+but is expected to have type
+  forall {C : Type.{u6}} {D : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u4, u6} C] [_inst_2 : CategoryTheory.Category.{u3, u5} D] (L : CategoryTheory.Functor.{u4, u3, u6, u5} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u4, u6} C _inst_1) (E : Type.{u2}) [_inst_3 : CategoryTheory.Category.{u1, u2} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u6, u5, u4, u3} C D _inst_1 _inst_2 L W], Eq.{max (max (max (max (max (succ u6) (succ u5)) (succ u4)) (succ u3)) (succ u2)) (succ u1)} (CategoryTheory.Functor.{max u5 u1, max u6 u1, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u3, u1, u5, u2} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u3, u1, u5, u2} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u1, u6, u2} C _inst_1 E _inst_3)) (CategoryTheory.Localization.whiskeringLeftFunctor'.{u6, u5, u4, u3, u2, u1} C D _inst_1 _inst_2 L W E _inst_3) (CategoryTheory.Functor.comp.{max u5 u1, max u6 u1, max u6 u1, max (max (max u5 u3) u2) u1, max (max (max u6 u4) u2) u1, max (max (max u6 u4) u2) u1} (CategoryTheory.Functor.{u3, u1, u5, u2} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u3, u1, u5, u2} D _inst_2 E _inst_3) (CategoryTheory.MorphismProperty.FunctorsInverting.{u4, u6, u2, u1} C _inst_1 W E _inst_3) (CategoryTheory.MorphismProperty.instCategoryFunctorsInverting.{u4, u6, u2, u1} C _inst_1 W E _inst_3) (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.Localization.whiskeringLeftFunctor.{u6, u5, u4, u3, u2, u1} C D _inst_1 _inst_2 L W E _inst_3 _inst_4) (CategoryTheory.inducedFunctor.{max u6 u1, max (max (max u6 u4) u2) u1, max (max (max u6 u4) u2) u1} (CategoryTheory.FullSubcategory.{max (max (max u6 u4) u2) u1} (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (fun (F : CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) => CategoryTheory.MorphismProperty.IsInvertedBy.{u4, u6, u2, u1} C _inst_1 E _inst_3 W F)) (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u4, u1, u6, u2} C _inst_1 E _inst_3) (CategoryTheory.FullSubcategory.obj.{max (max (max u6 u4) u2) u1} (CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) (fun (F : CategoryTheory.Functor.{u4, u1, u6, u2} C _inst_1 E _inst_3) => CategoryTheory.MorphismProperty.IsInvertedBy.{u4, u6, u2, u1} C _inst_1 E _inst_3 W F))))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.whiskering_left_functor'_eq CategoryTheory.Localization.whiskeringLeftFunctor'_eqₓ'. -/
 theorem whiskeringLeftFunctor'_eq :
     whiskeringLeftFunctor' L W E = Localization.whiskeringLeftFunctor L W E ⋙ inducedFunctor _ :=
   rfl
@@ -258,6 +328,12 @@ theorem whiskeringLeftFunctor'_eq :
 
 variable {E}
 
+/- warning: category_theory.localization.whiskering_left_functor'_obj -> CategoryTheory.Localization.whiskeringLeftFunctor'_obj is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] (F : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3), Eq.{succ (max u3 u6 u1 u5)} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.obj.{max u2 u6, max u1 u6, max u4 u6 u2 u5, max u3 u6 u1 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Localization.whiskeringLeftFunctor'.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4) F) (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F)
+but is expected to have type
+  forall {C : Type.{u2}} {D : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Category.{u6, u4} D] (L : CategoryTheory.Functor.{u1, u6, u2, u4} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u1, u2} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] (_inst_4 : CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3), Eq.{max (max (max (succ u2) (succ u1)) (succ u3)) (succ u5)} (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (Prefunctor.obj.{max (succ u4) (succ u5), max (succ u2) (succ u5), max (max (max u4 u6) u3) u5, max (max (max u2 u1) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3))) (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u5, max (max (max u2 u1) u3) u5} (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u5, max (max (max u2 u1) u3) u5} (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u1, u5, u2, u3} C _inst_1 E _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u4 u5, max u2 u5, max (max (max u4 u6) u3) u5, max (max (max u2 u1) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u1, u5, u2, u3} C _inst_1 E _inst_3) (CategoryTheory.Localization.whiskeringLeftFunctor'.{u2, u4, u1, u6, u3, u5} C D _inst_1 _inst_2 L W E _inst_3)) _inst_4) (CategoryTheory.Functor.comp.{u1, u6, u5, u2, u4, u3} C _inst_1 D _inst_2 E _inst_3 L _inst_4)
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.whiskering_left_functor'_obj CategoryTheory.Localization.whiskeringLeftFunctor'_objₓ'. -/
 @[simp]
 theorem whiskeringLeftFunctor'_obj (F : D ⥤ E) : (whiskeringLeftFunctor' L W E).obj F = L ⋙ F :=
   rfl
@@ -273,14 +349,26 @@ instance : Faithful (whiskeringLeftFunctor' L W E) :=
   rw [whiskering_left_functor'_eq]
   infer_instance
 
-theorem nat_trans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
+/- warning: category_theory.localization.nat_trans_ext -> CategoryTheory.Localization.natTrans_ext is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {F₁ : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3} {F₂ : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3} (τ : Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F₁ F₂), (forall (X : C), Eq.{succ u6} (Quiver.Hom.{succ u6, u5} E (CategoryTheory.CategoryStruct.toQuiver.{u6, u5} E (CategoryTheory.Category.toCategoryStruct.{u6, u5} E _inst_3)) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁ (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₂ (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X))) (CategoryTheory.NatTrans.app.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁ F₂ τ (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.NatTrans.app.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁ F₂ τ' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X))) -> (Eq.{succ (max u2 u6)} (Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F₁ F₂) τ τ')
+but is expected to have type
+  forall {C : Type.{u1}} {D : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] [_inst_2 : CategoryTheory.Category.{u6, u4} D] (L : CategoryTheory.Functor.{u2, u6, u1, u4} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u4, u2, u6} C D _inst_1 _inst_2 L W] {F₁ : CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3} {F₂ : CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3} (τ : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3))) F₁ F₂), (forall (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u3} E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (Prefunctor.obj.{succ u6, succ u5, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} D _inst_2 E _inst_3 F₁) (Prefunctor.obj.{succ u2, succ u6, u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u6, u1, u4} C _inst_1 D _inst_2 L) X)) (Prefunctor.obj.{succ u6, succ u5, u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} D _inst_2 E _inst_3 F₂) (Prefunctor.obj.{succ u2, succ u6, u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u6, u1, u4} C _inst_1 D _inst_2 L) X))) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} D _inst_2 E _inst_3 F₁ F₂ τ (Prefunctor.obj.{succ u2, succ u6, u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u6, u1, u4} C _inst_1 D _inst_2 L) X)) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} D _inst_2 E _inst_3 F₁ F₂ τ' (Prefunctor.obj.{succ u2, succ u6, u1, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} D (CategoryTheory.Category.toCategoryStruct.{u6, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u6, u1, u4} C _inst_1 D _inst_2 L) X))) -> (Eq.{max (succ u4) (succ u5)} (Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} D _inst_2 E _inst_3))) F₁ F₂) τ τ')
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_extₓ'. -/
+theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
     (h : ∀ X : C, τ.app (L.obj X) = τ'.app (L.obj X)) : τ = τ' :=
   by
   haveI : CategoryTheory.EssSurj L := ess_surj L W
   ext Y
   rw [← cancel_epi (F₁.map (L.obj_obj_preimage_iso Y).Hom), τ.naturality, τ'.naturality, h]
-#align category_theory.localization.nat_trans_ext CategoryTheory.Localization.nat_trans_ext
-
+#align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
+
+/- warning: category_theory.localization.lifting -> CategoryTheory.Localization.Lifting is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) -> (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) -> Sort.{max (succ u1) (succ u6)}
+but is expected to have type
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D], (CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) -> (forall {W : Type.{u5}} [E : CategoryTheory.Category.{u6, u5} W], (CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) -> (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 W E) -> (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 W E) -> Sort.{max (succ u1) (succ u6)})
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.lifting CategoryTheory.Localization.Liftingₓ'. -/
 /- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`Iso] [] -/
 /-- When `L : C ⥤ D` is a localization functor for `W : morphism_property C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
@@ -291,18 +379,23 @@ class Lifting (F : C ⥤ E) (F' : D ⥤ E) where
 
 variable {W}
 
+#print CategoryTheory.Localization.lift /-
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C` and
 a functor `F : C ⥤ E` which inverts `W`, this is a choice of functor
 `D ⥤ E` which lifts `F`. -/
 def lift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalization W] : D ⥤ E :=
   (functorEquivalence L W E).inverse.obj ⟨F, hF⟩
 #align category_theory.localization.lift CategoryTheory.Localization.lift
+-/
 
+#print CategoryTheory.Localization.liftingLift /-
 instance liftingLift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalization W] :
     Lifting L W F (lift F hF L) :=
   ⟨(inducedFunctor _).mapIso ((functorEquivalence L W E).counitIso.app ⟨F, hF⟩)⟩
 #align category_theory.localization.lifting_lift CategoryTheory.Localization.liftingLift
+-/
 
+#print CategoryTheory.Localization.fac /-
 /-- The canonical isomorphism `L ⋙ lift F hF L ≅ F` for any functor `F : C ⥤ E`
 which inverts `W`, when `L : C ⥤ D` is a localization functor for `W`. -/
 @[simps]
@@ -310,14 +403,18 @@ def fac (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalizati
     L ⋙ lift F hF L ≅ F :=
   Lifting.iso _ W _ _
 #align category_theory.localization.fac CategoryTheory.Localization.fac
+-/
 
+#print CategoryTheory.Localization.liftingConstructionLift /-
 instance liftingConstructionLift (F : C ⥤ D) (hF : W.IsInvertedBy F) :
     Lifting W.Q W F (Construction.lift F hF) :=
   ⟨eqToIso (Construction.fac F hF)⟩
 #align category_theory.localization.lifting_construction_lift CategoryTheory.Localization.liftingConstructionLift
+-/
 
 variable (W)
 
+#print CategoryTheory.Localization.liftNatTrans /-
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C`,
 if `(F₁' F₂' : D ⥤ E)` are functors which lifts functors `(F₁ F₂ : C ⥤ E)`,
 a natural transformation `τ : F₁ ⟶ F₂` uniquely lifts to a natural transformation `F₁' ⟶ F₂'`. -/
@@ -326,7 +423,14 @@ def liftNatTrans (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting L W F₁
   (whiskeringLeftFunctor' L W E).preimage
     ((Lifting.iso L W F₁ F₁').Hom ≫ τ ≫ (Lifting.iso L W F₂ F₂').inv)
 #align category_theory.localization.lift_nat_trans CategoryTheory.Localization.liftNatTrans
+-/
 
+/- warning: category_theory.localization.lift_nat_trans_app -> CategoryTheory.Localization.liftNatTrans_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [_inst_5 : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₁'] [_inst_6 : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₂'] (τ : Quiver.Hom.{succ (max u1 u6), max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3))) F₁ F₂) (X : C), Eq.{succ u6} (Quiver.Hom.{succ u6, u5} E (CategoryTheory.CategoryStruct.toQuiver.{u6, u5} E (CategoryTheory.Category.toCategoryStruct.{u6, u5} E _inst_3)) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₂' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X))) (CategoryTheory.NatTrans.app.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁' F₂' (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' _inst_5 _inst_6 τ) (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.CategoryStruct.comp.{u6, u5} E (CategoryTheory.Category.toCategoryStruct.{u6, u5} E _inst_3) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₁' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.Functor.obj.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₁ X) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₂' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.NatTrans.app.{u3, u6, u1, u5} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F₁') F₁ (CategoryTheory.Iso.hom.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F₁') F₁ (CategoryTheory.Localization.Lifting.iso.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₁' _inst_5)) X) (CategoryTheory.CategoryStruct.comp.{u6, u5} E (CategoryTheory.Category.toCategoryStruct.{u6, u5} E _inst_3) (CategoryTheory.Functor.obj.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₁ X) (CategoryTheory.Functor.obj.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₂ X) (CategoryTheory.Functor.obj.{u4, u6, u2, u5} D _inst_2 E _inst_3 F₂' (CategoryTheory.Functor.obj.{u3, u4, u1, u2} C _inst_1 D _inst_2 L X)) (CategoryTheory.NatTrans.app.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₁ F₂ τ X) (CategoryTheory.NatTrans.app.{u3, u6, u1, u5} C _inst_1 E _inst_3 F₂ (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F₂') (CategoryTheory.Iso.inv.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_3 L F₂') F₂ (CategoryTheory.Localization.Lifting.iso.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₂' _inst_6)) X)))
+but is expected to have type
+  forall {C : Type.{u4}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u6, u2, u4, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u6, u4} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u4, u1, u6, u2} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) [_inst_5 : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₁ F₁'] [_inst_6 : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₂ F₂'] (τ : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3))) F₁ F₂) (X : C), Eq.{succ u5} (Quiver.Hom.{succ u5, u3} E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (Prefunctor.obj.{succ u2, succ u5, u1, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u5, u1, u3} D _inst_2 E _inst_3 F₁') (Prefunctor.obj.{succ u6, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u6, u2, u4, u1} C _inst_1 D _inst_2 L) X)) (Prefunctor.obj.{succ u2, succ u5, u1, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, u5, u1, u3} D _inst_2 E _inst_3 F₂') (Prefunctor.obj.{succ u6, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u6, u2, u4, u1} C _inst_1 D _inst_2 L) X))) (CategoryTheory.NatTrans.app.{u2, u5, u1, u3} D _inst_2 E _inst_3 F₁' F₂' (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' _inst_5 _inst_6 τ) (Prefunctor.obj.{succ u6, succ u2, u4, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} D (CategoryTheory.Category.toCategoryStruct.{u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u6, u2, u4, u1} C _inst_1 D _inst_2 L) X)) (CategoryTheory.CategoryStruct.comp.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₁')) X) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₁) X) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₂')) X) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₁') F₁ (CategoryTheory.Iso.hom.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₁') F₁ (CategoryTheory.Localization.Lifting.iso.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 F₁ F₁' _inst_5)) X) (CategoryTheory.CategoryStruct.comp.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₁) X) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₂) X) (Prefunctor.obj.{succ u6, succ u5, u4, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u6, u4} C (CategoryTheory.Category.toCategoryStruct.{u6, u4} C _inst_1)) E (CategoryTheory.CategoryStruct.toQuiver.{u5, u3} E (CategoryTheory.Category.toCategoryStruct.{u5, u3} E _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u6, u5, u4, u3} C _inst_1 E _inst_3 (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₂')) X) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₁ F₂ τ X) (CategoryTheory.NatTrans.app.{u6, u5, u4, u3} C _inst_1 E _inst_3 F₂ (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₂') (CategoryTheory.Iso.inv.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.comp.{u6, u2, u5, u4, u1, u3} C _inst_1 D _inst_2 E _inst_3 L F₂') F₂ (CategoryTheory.Localization.Lifting.iso.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 F₂ F₂' _inst_6)) X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_appₓ'. -/
 @[simp]
 theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting L W F₁ F₁'] [Lifting L W F₂ F₂']
     (τ : F₁ ⟶ F₂) (X : C) :
@@ -335,22 +439,35 @@ theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting
   congr_app (Functor.image_preimage (whiskeringLeftFunctor' L W E) _) X
 #align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_app
 
+/- warning: category_theory.localization.comp_lift_nat_trans -> CategoryTheory.Localization.comp_liftNatTrans is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₃ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (F₃' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [h₁ : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₁'] [h₂ : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₂'] [h₃ : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₃ F₃'] (τ : Quiver.Hom.{succ (max u1 u6), max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{succ (max u1 u6), max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3))) F₂ F₃), Eq.{succ (max u2 u6)} (Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F₁' F₃') (CategoryTheory.CategoryStruct.comp.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3)) F₁' F₂' F₃' (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' h₁ h₂ τ) (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₃ F₂' F₃' h₂ h₃ τ')) (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₃ F₁' F₃' h₁ h₃ (CategoryTheory.CategoryStruct.comp.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3)) F₁ F₂ F₃ τ τ'))
+but is expected to have type
+  forall {C : Type.{u4}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u6, u2, u4, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u6, u4} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u4, u1, u6, u2} C D _inst_1 _inst_2 L W] (F₁ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₂ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₃ : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F₁' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (F₂' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (F₃' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) [h₁ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₁ F₁'] [h₂ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₂ F₂'] [h₃ : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F₃ F₃'] (τ : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3))) F₁ F₂) (τ' : Quiver.Hom.{max (succ u4) (succ u5), max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3))) F₂ F₃), Eq.{max (succ u1) (succ u5)} (Quiver.Hom.{succ (max u1 u5), max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3))) F₁' F₃') (CategoryTheory.CategoryStruct.comp.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3)) F₁' F₂' F₃' (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₂ F₁' F₂' h₁ h₂ τ) (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₃ F₂' F₃' h₂ h₃ τ')) (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₃ F₁' F₃' h₁ h₃ (CategoryTheory.CategoryStruct.comp.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3)) F₁ F₂ F₃ τ τ'))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.comp_lift_nat_trans CategoryTheory.Localization.comp_liftNatTransₓ'. -/
 @[simp, reassoc.1]
 theorem comp_liftNatTrans (F₁ F₂ F₃ : C ⥤ E) (F₁' F₂' F₃' : D ⥤ E) [h₁ : Lifting L W F₁ F₁']
     [h₂ : Lifting L W F₂ F₂'] [h₃ : Lifting L W F₃ F₃'] (τ : F₁ ⟶ F₂) (τ' : F₂ ⟶ F₃) :
     liftNatTrans L W F₁ F₂ F₁' F₂' τ ≫ liftNatTrans L W F₂ F₃ F₂' F₃' τ' =
       liftNatTrans L W F₁ F₃ F₁' F₃' (τ ≫ τ') :=
-  nat_trans_ext L W _ _ fun X => by
+  natTrans_ext L W _ _ fun X => by
     simp only [nat_trans.comp_app, lift_nat_trans_app, assoc, iso.inv_hom_id_app_assoc]
 #align category_theory.localization.comp_lift_nat_trans CategoryTheory.Localization.comp_liftNatTrans
 
+/- warning: category_theory.localization.lift_nat_trans_id -> CategoryTheory.Localization.liftNatTrans_id is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] (F : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [h : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F F'], Eq.{succ (max u2 u6)} (Quiver.Hom.{succ (max u2 u6), max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3))) F' F') (CategoryTheory.Localization.liftNatTrans.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F F F' F' h h (CategoryTheory.CategoryStruct.id.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3)) F)) (CategoryTheory.CategoryStruct.id.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3)) F')
+but is expected to have type
+  forall {C : Type.{u4}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u6, u2, u4, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u6, u4} C _inst_1) {E : Type.{u3}} [_inst_3 : CategoryTheory.Category.{u5, u3} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u4, u1, u6, u2} C D _inst_1 _inst_2 L W] (F : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (F' : CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) [h : CategoryTheory.Localization.Lifting.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L E _inst_3 W F F'], Eq.{max (succ u1) (succ u5)} (Quiver.Hom.{max (succ u1) (succ u5), max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3))) F' F') (CategoryTheory.Localization.liftNatTrans.{u4, u1, u6, u2, u3, u5} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F F F' F' h h (CategoryTheory.CategoryStruct.id.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u5, max (max (max u4 u6) u3) u5} (CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u6, u5, u4, u3} C _inst_1 E _inst_3)) F)) (CategoryTheory.CategoryStruct.id.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u1 u5, max (max (max u1 u2) u3) u5} (CategoryTheory.Functor.{u2, u5, u1, u3} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u2, u5, u1, u3} D _inst_2 E _inst_3)) F')
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.lift_nat_trans_id CategoryTheory.Localization.liftNatTrans_idₓ'. -/
 @[simp]
 theorem liftNatTrans_id (F : C ⥤ E) (F' : D ⥤ E) [h : Lifting L W F F'] :
     liftNatTrans L W F F F' F' (𝟙 F) = 𝟙 F' :=
-  nat_trans_ext L W _ _ fun X => by
+  natTrans_ext L W _ _ fun X => by
     simpa only [lift_nat_trans_app, nat_trans.id_app, id_comp, iso.hom_inv_id_app]
 #align category_theory.localization.lift_nat_trans_id CategoryTheory.Localization.liftNatTrans_id
 
+#print CategoryTheory.Localization.liftNatIso /-
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C`,
 if `(F₁' F₂' : D ⥤ E)` are functors which lifts functors `(F₁ F₂ : C ⥤ E)`,
 a natural isomorphism `τ : F₁ ⟶ F₂` lifts to a natural isomorphism `F₁' ⟶ F₂'`. -/
@@ -361,20 +478,35 @@ def liftNatIso (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [h₁ : Lifting L W
   Hom := liftNatTrans L W F₁ F₂ F₁' F₂' e.Hom
   inv := liftNatTrans L W F₂ F₁ F₂' F₁' e.inv
 #align category_theory.localization.lift_nat_iso CategoryTheory.Localization.liftNatIso
+-/
 
 namespace Lifting
 
+/- warning: category_theory.localization.lifting.comp_right -> CategoryTheory.Localization.Lifting.compRight is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {E' : Type.{u7}} [_inst_5 : CategoryTheory.Category.{u8, u7} E'] (F : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [_inst_6 : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F F'] (G : CategoryTheory.Functor.{u6, u8, u5, u7} E _inst_3 E' _inst_5), CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u7, u8} C D _inst_1 _inst_2 L W E' _inst_5 _inst_4 (CategoryTheory.Functor.comp.{u3, u6, u8, u1, u5, u7} C _inst_1 E _inst_3 E' _inst_5 F G) (CategoryTheory.Functor.comp.{u4, u6, u8, u2, u5, u7} D _inst_2 E _inst_3 E' _inst_5 F' G)
+but is expected to have type
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] {_inst_4 : Type.{u7}} [E' : CategoryTheory.Category.{u8, u7} _inst_4] (_inst_5 : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (F : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) [F' : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L E _inst_3 W _inst_5 F] (_inst_6 : CategoryTheory.Functor.{u6, u8, u5, u7} E _inst_3 _inst_4 E'), CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u7, u8} C D _inst_1 _inst_2 L _inst_4 E' W (CategoryTheory.Functor.comp.{u3, u6, u8, u1, u5, u7} C _inst_1 E _inst_3 _inst_4 E' _inst_5 _inst_6) (CategoryTheory.Functor.comp.{u4, u6, u8, u2, u5, u7} D _inst_2 E _inst_3 _inst_4 E' F _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.lifting.comp_right CategoryTheory.Localization.Lifting.compRightₓ'. -/
 @[simps]
 instance compRight {E' : Type _} [Category E'] (F : C ⥤ E) (F' : D ⥤ E) [Lifting L W F F']
     (G : E ⥤ E') : Lifting L W (F ⋙ G) (F' ⋙ G) :=
   ⟨isoWhiskerRight (iso L W F F') G⟩
 #align category_theory.localization.lifting.comp_right CategoryTheory.Localization.Lifting.compRight
 
+#print CategoryTheory.Localization.Lifting.id /-
 @[simps]
 instance id : Lifting L W L (𝟭 D) :=
   ⟨Functor.rightUnitor L⟩
 #align category_theory.localization.lifting.id CategoryTheory.Localization.Lifting.id
+-/
 
+/- warning: category_theory.localization.lifting.of_isos -> CategoryTheory.Localization.Lifting.ofIsos is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W] {F₁ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3} {F₂ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3} {F₁' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3} {F₂' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3}, (CategoryTheory.Iso.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) F₁ F₂) -> (CategoryTheory.Iso.{max u2 u6, max u4 u6 u2 u5} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) F₁' F₂') -> (forall [_inst_5 : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₁ F₁'], CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L W E _inst_3 _inst_4 F₂ F₂')
+but is expected to have type
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] {_inst_4 : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3} {F₁ : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3} {F₂ : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3} {F₁' : CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3}, (CategoryTheory.Iso.{max u1 u6, max (max (max u1 u3) u5) u6} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_3) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_3) _inst_4 F₁) -> (CategoryTheory.Iso.{max u2 u6, max (max (max u2 u4) u5) u6} (CategoryTheory.Functor.{u4, u6, u2, u5} D _inst_2 E _inst_3) (CategoryTheory.Functor.category.{u4, u6, u2, u5} D _inst_2 E _inst_3) F₂ F₁') -> (forall [e' : CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L E _inst_3 W _inst_4 F₂], CategoryTheory.Localization.Lifting.{u1, u2, u3, u4, u5, u6} C D _inst_1 _inst_2 L E _inst_3 W F₁ F₁')
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.lifting.of_isos CategoryTheory.Localization.Lifting.ofIsosₓ'. -/
 /-- Given a localization functor `L : C ⥤ D` for `W : morphism_property C`,
 if `F₁' : D ⥤ E` lifts a functor `F₁ : C ⥤ D`, then a functor `F₂'` which
 is isomorphic to `F₁'` also lifts a functor `F₂` that is isomorphic to `F₁`.  -/
@@ -394,6 +526,12 @@ namespace IsLocalization
 
 open Localization
 
+/- warning: category_theory.functor.is_localization.of_iso -> CategoryTheory.Functor.IsLocalization.of_iso is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {L₁ : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2} {L₂ : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2}, (CategoryTheory.Iso.{max u1 u4, max u3 u4 u1 u2} (CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u1, u2} C _inst_1 D _inst_2) L₁ L₂) -> (forall [_inst_4 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L₁ W], CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L₂ W)
+but is expected to have type
+  forall {C : Type.{u2}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u2} C] [_inst_2 : CategoryTheory.Category.{u3, u1} D] (W : CategoryTheory.MorphismProperty.{u4, u2} C _inst_1) {L₁ : CategoryTheory.Functor.{u4, u3, u2, u1} C _inst_1 D _inst_2} {L₂ : CategoryTheory.Functor.{u4, u3, u2, u1} C _inst_1 D _inst_2}, (CategoryTheory.Iso.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u4, u3, u2, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u4, u3, u2, u1} C _inst_1 D _inst_2) L₁ L₂) -> (forall [_inst_4 : CategoryTheory.Functor.IsLocalization.{u2, u1, u4, u3} C D _inst_1 _inst_2 L₁ W], CategoryTheory.Functor.IsLocalization.{u2, u1, u4, u3} C D _inst_1 _inst_2 L₂ W)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_localization.of_iso CategoryTheory.Functor.IsLocalization.of_isoₓ'. -/
 theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W] : L₂.IsLocalization W :=
   by
   have h := localization.inverts L₁ W
@@ -406,6 +544,12 @@ theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W]
         Nonempty.intro (is_equivalence.of_iso (lift_nat_iso W.Q W L₁ L₂ F₁ F₂ e) inferInstance) }
 #align category_theory.functor.is_localization.of_iso CategoryTheory.Functor.IsLocalization.of_iso
 
+/- warning: category_theory.functor.is_localization.of_equivalence_target -> CategoryTheory.Functor.IsLocalization.of_equivalence_target is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u1} C] [_inst_2 : CategoryTheory.Category.{u4, u2} D] (L : CategoryTheory.Functor.{u3, u4, u1, u2} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u3, u1} C _inst_1) {E : Type.{u5}} [_inst_4 : CategoryTheory.Category.{u6, u5} E] (L' : CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_4) (eq : CategoryTheory.Equivalence.{u4, u6, u2, u5} D _inst_2 E _inst_4) [_inst_5 : CategoryTheory.Functor.IsLocalization.{u1, u2, u3, u4} C D _inst_1 _inst_2 L W], (CategoryTheory.Iso.{max u1 u6, max u3 u6 u1 u5} (CategoryTheory.Functor.{u3, u6, u1, u5} C _inst_1 E _inst_4) (CategoryTheory.Functor.category.{u3, u6, u1, u5} C _inst_1 E _inst_4) (CategoryTheory.Functor.comp.{u3, u4, u6, u1, u2, u5} C _inst_1 D _inst_2 E _inst_4 L (CategoryTheory.Equivalence.functor.{u4, u6, u2, u5} D _inst_2 E _inst_4 eq)) L') -> (CategoryTheory.Functor.IsLocalization.{u1, u5, u3, u6} C E _inst_1 _inst_4 L' W)
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u4, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u1} D] (L : CategoryTheory.Functor.{u4, u2, u3, u1} C _inst_1 D _inst_2) (W : CategoryTheory.MorphismProperty.{u4, u3} C _inst_1) {E : Type.{u6}} [_inst_4 : CategoryTheory.Category.{u5, u6} E] (L' : CategoryTheory.Functor.{u4, u5, u3, u6} C _inst_1 E _inst_4) (eq : CategoryTheory.Equivalence.{u2, u5, u1, u6} D E _inst_2 _inst_4) [_inst_5 : CategoryTheory.Functor.IsLocalization.{u3, u1, u4, u2} C D _inst_1 _inst_2 L W], (CategoryTheory.Iso.{max u3 u5, max (max (max u6 u3) u5) u4} (CategoryTheory.Functor.{u4, u5, u3, u6} C _inst_1 E _inst_4) (CategoryTheory.Functor.category.{u4, u5, u3, u6} C _inst_1 E _inst_4) (CategoryTheory.Functor.comp.{u4, u2, u5, u3, u1, u6} C _inst_1 D _inst_2 E _inst_4 L (CategoryTheory.Equivalence.functor.{u2, u5, u1, u6} D E _inst_2 _inst_4 eq)) L') -> (CategoryTheory.Functor.IsLocalization.{u3, u6, u4, u5} C E _inst_1 _inst_4 L' W)
+Case conversion may be inaccurate. Consider using '#align category_theory.functor.is_localization.of_equivalence_target CategoryTheory.Functor.IsLocalization.of_equivalence_targetₓ'. -/
 /-- If `L : C ⥤ D` is a localization for `W : morphism_property C`, then it is also
 the case of a functor obtained by post-composing `L` with an equivalence of categories. -/
 theorem of_equivalence_target {E : Type _} [Category E] (L' : C ⥤ E) (eq : D ≌ E)
Diff
@@ -55,9 +55,9 @@ class IsLocalization : Prop where
   nonempty_isEquivalence : Nonempty (IsEquivalence (Localization.Construction.lift L inverts))
 #align category_theory.functor.is_localization CategoryTheory.Functor.IsLocalization
 
-instance q_isLocalization : W.q.IsLocalization W
+instance q_isLocalization : W.Q.IsLocalization W
     where
-  inverts := W.q_inverts
+  inverts := W.Q_inverts
   nonempty_isEquivalence :=
     by
     suffices localization.construction.lift W.Q W.Q_inverts = 𝟭 _
@@ -86,15 +86,15 @@ structure StrictUniversalPropertyFixedTarget where
 /-- The localized category `W.localization` that was constructed satisfies
 the universal property of the localization. -/
 @[simps]
-def strictUniversalPropertyFixedTargetQ : StrictUniversalPropertyFixedTarget W.q W E
+def strictUniversalPropertyFixedTargetQ : StrictUniversalPropertyFixedTarget W.Q W E
     where
-  inverts := W.q_inverts
+  inverts := W.Q_inverts
   lift := Construction.lift
   fac := Construction.fac
   uniq := Construction.uniq
 #align category_theory.localization.strict_universal_property_fixed_target_Q CategoryTheory.Localization.strictUniversalPropertyFixedTargetQ
 
-instance : Inhabited (StrictUniversalPropertyFixedTarget W.q W E) :=
+instance : Inhabited (StrictUniversalPropertyFixedTarget W.Q W E) :=
   ⟨strictUniversalPropertyFixedTargetQ _ _⟩
 
 /-- When `W` consists of isomorphisms, the identity satisfies the universal property
@@ -124,7 +124,7 @@ theorem IsLocalization.mk' (h₁ : Localization.StrictUniversalPropertyFixedTarg
   { inverts := h₁.inverts
     nonempty_isEquivalence :=
       Nonempty.intro
-        { inverse := h₂.lift W.q W.q_inverts
+        { inverse := h₂.lift W.Q W.Q_inverts
           unitIso :=
             eqToIso
               (Localization.Construction.uniq _ _
@@ -177,20 +177,20 @@ def equivalenceFromModel : W.Localization ≌ D :=
 
 /-- Via the equivalence of categories `equivalence_from_model L W : W.localization ≌ D`,
 one may identify the functors `W.Q` and `L`. -/
-def qCompEquivalenceFromModelFunctorIso : W.q ⋙ (equivalenceFromModel L W).Functor ≅ L :=
+def qCompEquivalenceFromModelFunctorIso : W.Q ⋙ (equivalenceFromModel L W).Functor ≅ L :=
   eqToIso (Construction.fac _ _)
 #align category_theory.localization.Q_comp_equivalence_from_model_functor_iso CategoryTheory.Localization.qCompEquivalenceFromModelFunctorIso
 
 /-- Via the equivalence of categories `equivalence_from_model L W : W.localization ≌ D`,
 one may identify the functors `L` and `W.Q`. -/
-def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).inverse ≅ W.q :=
+def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).inverse ≅ W.Q :=
   calc
     L ⋙ (equivalenceFromModel L W).inverse ≅ _ :=
       isoWhiskerRight (qCompEquivalenceFromModelFunctorIso L W).symm _
-    _ ≅ W.q ⋙ (equivalenceFromModel L W).Functor ⋙ (equivalenceFromModel L W).inverse :=
+    _ ≅ W.Q ⋙ (equivalenceFromModel L W).Functor ⋙ (equivalenceFromModel L W).inverse :=
       (Functor.associator _ _ _)
-    _ ≅ W.q ⋙ 𝟭 _ := (isoWhiskerLeft _ (equivalenceFromModel L W).unitIso.symm)
-    _ ≅ W.q := Functor.rightUnitor _
+    _ ≅ W.Q ⋙ 𝟭 _ := (isoWhiskerLeft _ (equivalenceFromModel L W).unitIso.symm)
+    _ ≅ W.Q := Functor.rightUnitor _
     
 #align category_theory.localization.comp_equivalence_from_model_inverse_iso CategoryTheory.Localization.compEquivalenceFromModelInverseIso
 
@@ -312,7 +312,7 @@ def fac (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [hL : L.IsLocalizati
 #align category_theory.localization.fac CategoryTheory.Localization.fac
 
 instance liftingConstructionLift (F : C ⥤ D) (hF : W.IsInvertedBy F) :
-    Lifting W.q W F (Construction.lift F hF) :=
+    Lifting W.Q W F (Construction.lift F hF) :=
   ⟨eqToIso (Construction.fac F hF)⟩
 #align category_theory.localization.lifting_construction_lift CategoryTheory.Localization.liftingConstructionLift
 
Diff
@@ -188,8 +188,8 @@ def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).invers
     L ⋙ (equivalenceFromModel L W).inverse ≅ _ :=
       isoWhiskerRight (qCompEquivalenceFromModelFunctorIso L W).symm _
     _ ≅ W.q ⋙ (equivalenceFromModel L W).Functor ⋙ (equivalenceFromModel L W).inverse :=
-      Functor.associator _ _ _
-    _ ≅ W.q ⋙ 𝟭 _ := isoWhiskerLeft _ (equivalenceFromModel L W).unitIso.symm
+      (Functor.associator _ _ _)
+    _ ≅ W.q ⋙ 𝟭 _ := (isoWhiskerLeft _ (equivalenceFromModel L W).unitIso.symm)
     _ ≅ W.q := Functor.rightUnitor _
     
 #align category_theory.localization.comp_equivalence_from_model_inverse_iso CategoryTheory.Localization.compEquivalenceFromModelInverseIso

Changes in mathlib4

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

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

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

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

Diff
@@ -258,8 +258,7 @@ theorem whiskeringLeftFunctor'_eq :
   rfl
 #align category_theory.localization.whiskering_left_functor'_eq CategoryTheory.Localization.whiskeringLeftFunctor'_eq
 
-variable {E}
-
+variable {E} in
 @[simp]
 theorem whiskeringLeftFunctor'_obj (F : D ⥤ E) : (whiskeringLeftFunctor' L W E).obj F = L ⋙ F :=
   rfl
@@ -277,6 +276,14 @@ instance : (whiskeringLeftFunctor' L W E).Faithful := by
   infer_instance
   apply InducedCategory.faithful -- why is it not found automatically ???
 
+lemma full_whiskeringLeft : ((whiskeringLeft C D E).obj L).Full :=
+  inferInstanceAs (whiskeringLeftFunctor' L W E).Full
+
+lemma faithful_whiskeringLeft : ((whiskeringLeft C D E).obj L).Faithful :=
+  inferInstanceAs (whiskeringLeftFunctor' L W E).Faithful
+
+variable {E}
+
 theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
     (h : ∀ X : C, τ.app (L.obj X) = τ'.app (L.obj X)) : τ = τ' := by
   haveI := essSurj L W
@@ -342,7 +349,7 @@ theorem liftNatTrans_app (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [Lifting
     (τ : F₁ ⟶ F₂) (X : C) :
     (liftNatTrans L W F₁ F₂ F₁' F₂' τ).app (L.obj X) =
       (Lifting.iso L W F₁ F₁').hom.app X ≫ τ.app X ≫ (Lifting.iso L W F₂ F₂').inv.app X :=
-  congr_app (Functor.image_preimage (whiskeringLeftFunctor' L W E) _) X
+  congr_app (Functor.map_preimage (whiskeringLeftFunctor' L W E) _) X
 #align category_theory.localization.lift_nat_trans_app CategoryTheory.Localization.liftNatTrans_app
 
 @[reassoc (attr := simp)]
chore: superfluous parentheses part 2 (#12131)

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

Diff
@@ -195,7 +195,7 @@ def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).invers
       isoWhiskerRight (qCompEquivalenceFromModelFunctorIso L W).symm _
     _ ≅ W.Q ⋙ (equivalenceFromModel L W).functor ⋙ (equivalenceFromModel L W).inverse :=
       (Functor.associator _ _ _)
-    _ ≅ W.Q ⋙ 𝟭 _ := (isoWhiskerLeft _ (equivalenceFromModel L W).unitIso.symm)
+    _ ≅ W.Q ⋙ 𝟭 _ := isoWhiskerLeft _ (equivalenceFromModel L W).unitIso.symm
     _ ≅ W.Q := Functor.rightUnitor _
 #align category_theory.localization.comp_equivalence_from_model_inverse_iso CategoryTheory.Localization.compEquivalenceFromModelInverseIso
 
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

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

Diff
@@ -170,7 +170,7 @@ def isoOfHom {X Y : C} (f : X ⟶ Y) (hf : W f) : L.obj X ≅ L.obj Y :=
   asIso (L.map f)
 #align category_theory.localization.iso_of_hom CategoryTheory.Localization.isoOfHom
 
-instance : IsEquivalence (Localization.Construction.lift L (inverts L W)) :=
+instance : (Localization.Construction.lift L (inverts L W)).IsEquivalence :=
   (inferInstance : L.IsLocalization W).nonempty_isEquivalence.some
 
 /-- A chosen equivalence of categories `W.Localization ≅ D` for a functor
@@ -199,7 +199,7 @@ def compEquivalenceFromModelInverseIso : L ⋙ (equivalenceFromModel L W).invers
     _ ≅ W.Q := Functor.rightUnitor _
 #align category_theory.localization.comp_equivalence_from_model_inverse_iso CategoryTheory.Localization.compEquivalenceFromModelInverseIso
 
-theorem essSurj : EssSurj L :=
+theorem essSurj : L.EssSurj :=
   ⟨fun X =>
     ⟨(Construction.objEquiv W).invFun ((equivalenceFromModel L W).inverse.obj X),
       Nonempty.intro
@@ -214,10 +214,10 @@ def whiskeringLeftFunctor : (D ⥤ E) ⥤ W.FunctorsInverting E :=
     (MorphismProperty.IsInvertedBy.of_comp W L (inverts L W))
 #align category_theory.localization.whiskering_left_functor CategoryTheory.Localization.whiskeringLeftFunctor
 
-instance : IsEquivalence (whiskeringLeftFunctor L W E) := by
+instance : (whiskeringLeftFunctor L W E).IsEquivalence := by
   refine'
-    IsEquivalence.ofIso _
-      (IsEquivalence.ofEquivalence
+    Functor.IsEquivalence.ofIso _
+      (Functor.IsEquivalence.ofEquivalence
         ((Equivalence.congrLeft (equivalenceFromModel L W).symm).trans
           (Construction.whiskeringLeftEquivalence W E)))
   exact
@@ -265,21 +265,21 @@ theorem whiskeringLeftFunctor'_obj (F : D ⥤ E) : (whiskeringLeftFunctor' L W E
   rfl
 #align category_theory.localization.whiskering_left_functor'_obj CategoryTheory.Localization.whiskeringLeftFunctor'_obj
 
-instance : Full (whiskeringLeftFunctor' L W E) := by
+instance : (whiskeringLeftFunctor' L W E).Full := by
   rw [whiskeringLeftFunctor'_eq]
-  apply @Full.comp _ _ _ _ _ _ _ _ ?_ ?_
+  apply @Functor.Full.comp _ _ _ _ _ _ _ _ ?_ ?_
   infer_instance
   apply InducedCategory.full -- why is it not found automatically ???
 
-instance : Faithful (whiskeringLeftFunctor' L W E) := by
+instance : (whiskeringLeftFunctor' L W E).Faithful := by
   rw [whiskeringLeftFunctor'_eq]
-  apply @Faithful.comp _ _ _ _ _ _ _ _ ?_ ?_
+  apply @Functor.Faithful.comp _ _ _ _ _ _ _ _ ?_ ?_
   infer_instance
   apply InducedCategory.faithful -- why is it not found automatically ???
 
 theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
     (h : ∀ X : C, τ.app (L.obj X) = τ'.app (L.obj X)) : τ = τ' := by
-  haveI : CategoryTheory.EssSurj L := essSurj L W
+  haveI := essSurj L W
   ext Y
   rw [← cancel_epi (F₁.map (L.objObjPreimageIso Y).hom), τ.naturality, τ'.naturality, h]
 #align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -284,7 +284,7 @@ theorem natTrans_ext {F₁ F₂ : D ⥤ E} (τ τ' : F₁ ⟶ F₂)
   rw [← cancel_epi (F₁.map (L.objObjPreimageIso Y).hom), τ.naturality, τ'.naturality, h]
 #align category_theory.localization.nat_trans_ext CategoryTheory.Localization.natTrans_ext
 
--- porting note: the field `iso` was renamed `Lifting.iso'` and it was redefined as
+-- Porting note: the field `iso` was renamed `Lifting.iso'` and it was redefined as
 -- `Lifting.iso` with explicit parameters
 /-- When `L : C ⥤ D` is a localization functor for `W : MorphismProperty C` and
 `F : C ⥤ E` is a functor, we shall say that `F' : D ⥤ E` lifts `F` if the obvious diagram
@@ -313,7 +313,7 @@ instance liftingLift (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [L.IsLo
   ⟨(inducedFunctor _).mapIso ((functorEquivalence L W E).counitIso.app ⟨F, hF⟩)⟩
 #align category_theory.localization.lifting_lift CategoryTheory.Localization.liftingLift
 
--- porting note: removed the unnecessary @[simps] attribute
+-- Porting note: removed the unnecessary @[simps] attribute
 /-- The canonical isomorphism `L ⋙ lift F hF L ≅ F` for any functor `F : C ⥤ E`
 which inverts `W`, when `L : C ⥤ D` is a localization functor for `W`. -/
 def fac (F : C ⥤ E) (hF : W.IsInvertedBy F) (L : C ⥤ D) [L.IsLocalization W] :
feat(Algebra/Homology): the class of quasi-isomorphisms in the homotopy category (#9686)

This PR introduces the class of quasi-isomorphisms in the homotopy category of homological complexes.

Diff
@@ -483,4 +483,41 @@ def isoUniqFunctor (F : D₁ ⥤ D₂) (e : L₁ ⋙ F ≅ L₂) :
 
 end Localization
 
+section
+
+variable {X Y : C} (f g : X ⟶ Y)
+
+/-- The property that two morphisms become equal in the localized category. -/
+def AreEqualizedByLocalization : Prop := W.Q.map f = W.Q.map g
+
+lemma areEqualizedByLocalization_iff [L.IsLocalization W]:
+    AreEqualizedByLocalization W f g ↔ L.map f = L.map g := by
+  dsimp [AreEqualizedByLocalization]
+  constructor
+  · intro h
+    let e := Localization.compUniqFunctor W.Q L W
+    rw [← NatIso.naturality_1 e f, ← NatIso.naturality_1 e g]
+    dsimp
+    rw [h]
+  · intro h
+    let e := Localization.compUniqFunctor L W.Q W
+    rw [← NatIso.naturality_1 e f, ← NatIso.naturality_1 e g]
+    dsimp
+    rw [h]
+
+namespace AreEqualizedByLocalization
+
+lemma mk (L : C ⥤ D) [L.IsLocalization W] (h : L.map f = L.map g) :
+    AreEqualizedByLocalization W f g :=
+  (areEqualizedByLocalization_iff L W f g).2 h
+
+variable {W f g} (h : AreEqualizedByLocalization W f g)
+
+lemma map_eq (L : C ⥤ D) [L.IsLocalization W] : L.map f = L.map g :=
+  (areEqualizedByLocalization_iff L W f g).1 h
+
+end AreEqualizedByLocalization
+
+end
+
 end CategoryTheory
feat(CategoryTheory): localization of product categories (#8864)

The product of finitely many localized categories is the localized category of the product category, provided the classes of morphisms contain identities.

Diff
@@ -434,6 +434,12 @@ theorem of_equivalence_target {E : Type*} [Category E] (L' : C ⥤ E) (eq : D 
       nonempty_isEquivalence := Nonempty.intro (IsEquivalence.ofIso e' inferInstance) }
 #align category_theory.functor.is_localization.of_equivalence_target CategoryTheory.Functor.IsLocalization.of_equivalence_target
 
+lemma of_isEquivalence (L : C ⥤ D) (W : MorphismProperty C)
+    (hW : W ⊆ MorphismProperty.isomorphisms C) [IsEquivalence L] :
+    L.IsLocalization W := by
+  haveI : (𝟭 C).IsLocalization W := for_id W hW
+  exact of_equivalence_target (𝟭 C) W L L.asEquivalence L.leftUnitor
+
 end IsLocalization
 
 end Functor
chore: exactly 4 spaces in subsequent lines for def (#7321)

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

Diff
@@ -249,7 +249,7 @@ def functorEquivalence : D ⥤ E ≌ W.FunctorsInverting E :=
 functor `L : C ⥤ D` with respect to `W : MorphismProperty C`. -/
 @[nolint unusedArguments]
 def whiskeringLeftFunctor' (_ : MorphismProperty C) (E : Type*) [Category E] :
-  (D ⥤ E) ⥤ C ⥤ E :=
+    (D ⥤ E) ⥤ C ⥤ E :=
   (whiskeringLeft C D E).obj L
 #align category_theory.localization.whiskering_left_functor' CategoryTheory.Localization.whiskeringLeftFunctor'
 
feat(CategoryTheory): morphisms of localizers (#6869)

This PR introduces the categorical notion of morphisms of localizers.

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

Diff
@@ -386,6 +386,9 @@ instance id : Lifting L W L (𝟭 D) :=
   ⟨Functor.rightUnitor L⟩
 #align category_theory.localization.lifting.id CategoryTheory.Localization.Lifting.id
 
+@[simps]
+instance compLeft (F : D ⥤ E) : Localization.Lifting L W (L ⋙ F) F := ⟨Iso.refl _⟩
+
 /-- Given a localization functor `L : C ⥤ D` for `W : MorphismProperty C`,
 if `F₁' : D ⥤ E` lifts a functor `F₁ : C ⥤ D`, then a functor `F₂'` which
 is isomorphic to `F₁'` also lifts a functor `F₂` that is isomorphic to `F₁`.  -/
feat: uniqueness of the localized category up to equivalence (#6867)
Diff
@@ -435,4 +435,43 @@ end IsLocalization
 
 end Functor
 
+namespace Localization
+
+variable {D₁ D₂ : Type _} [Category D₁] [Category D₂] (L₁ : C ⥤ D₁) (L₂ : C ⥤ D₂)
+  (W' : MorphismProperty C) [L₁.IsLocalization W'] [L₂.IsLocalization W']
+
+/-- If `L₁ : C ⥤ D₁` and `L₂ : C ⥤ D₂` are two localization functors for the
+same `MorphismProperty C`, this is an equivalence of categories `D₁ ≌ D₂`. -/
+def uniq : D₁ ≌ D₂ :=
+  (equivalenceFromModel L₁ W').symm.trans (equivalenceFromModel L₂ W')
+
+lemma uniq_symm : (uniq L₁ L₂ W').symm = uniq L₂ L₁ W' := rfl
+
+/-- The functor of equivalence of localized categories given by `Localization.uniq` is
+compatible with the localization functors. -/
+def compUniqFunctor : L₁ ⋙ (uniq L₁ L₂ W').functor ≅ L₂ :=
+  calc
+    L₁ ⋙ (uniq L₁ L₂ W').functor ≅ (L₁ ⋙ (equivalenceFromModel L₁ W').inverse) ⋙
+      (equivalenceFromModel L₂ W').functor := (Functor.associator _ _ _).symm
+    _ ≅ W'.Q ⋙ (equivalenceFromModel L₂ W').functor :=
+      isoWhiskerRight (compEquivalenceFromModelInverseIso L₁ W') _
+    _ ≅ L₂ := qCompEquivalenceFromModelFunctorIso L₂ W'
+
+/-- The inverse functor of equivalence of localized categories given by `Localization.uniq` is
+compatible with the localization functors. -/
+def compUniqInverse : L₂ ⋙ (uniq L₁ L₂ W').inverse ≅ L₁ := compUniqFunctor L₂ L₁ W'
+
+instance : Lifting L₁ W' L₂ (uniq L₁ L₂ W').functor := ⟨compUniqFunctor L₁ L₂ W'⟩
+instance : Lifting L₂ W' L₁ (uniq L₁ L₂ W').inverse := ⟨compUniqInverse L₁ L₂ W'⟩
+
+/-- If `L₁ : C ⥤ D₁` and `L₂ : C ⥤ D₂` are two localization functors for the
+same `MorphismProperty C`, any functor `F : D₁ ⥤ D₂` equipped with an isomorphism
+`L₁ ⋙ F ≅ L₂` is isomorphic to the functor of the equivalence given by `uniq`. -/
+def isoUniqFunctor (F : D₁ ⥤ D₂) (e : L₁ ⋙ F ≅ L₂) :
+    F ≅ (uniq L₁ L₂ W').functor :=
+  letI : Lifting L₁ W' L₂ F := ⟨e⟩
+  liftNatIso L₁ W' L₂ L₂ F (uniq L₁ L₂ W').functor (Iso.refl L₂)
+
+end Localization
+
 end CategoryTheory
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -39,7 +39,7 @@ namespace CategoryTheory
 
 open Category
 
-variable {C D : Type _} [Category C] [Category D] (L : C ⥤ D) (W : MorphismProperty C) (E : Type _)
+variable {C D : Type*} [Category C] [Category D] (L : C ⥤ D) (W : MorphismProperty C) (E : Type*)
   [Category E]
 
 namespace Functor
@@ -248,7 +248,7 @@ def functorEquivalence : D ⥤ E ≌ W.FunctorsInverting E :=
 /-- The functor `(D ⥤ E) ⥤ (C ⥤ E)` given by the composition with a localization
 functor `L : C ⥤ D` with respect to `W : MorphismProperty C`. -/
 @[nolint unusedArguments]
-def whiskeringLeftFunctor' (_ : MorphismProperty C) (E : Type _) [Category E] :
+def whiskeringLeftFunctor' (_ : MorphismProperty C) (E : Type*) [Category E] :
   (D ⥤ E) ⥤ C ⥤ E :=
   (whiskeringLeft C D E).obj L
 #align category_theory.localization.whiskering_left_functor' CategoryTheory.Localization.whiskeringLeftFunctor'
@@ -376,7 +376,7 @@ def liftNatIso (F₁ F₂ : C ⥤ E) (F₁' F₂' : D ⥤ E) [h₁ : Lifting L W
 namespace Lifting
 
 @[simps]
-instance compRight {E' : Type _} [Category E'] (F : C ⥤ E) (F' : D ⥤ E) [Lifting L W F F']
+instance compRight {E' : Type*} [Category E'] (F : C ⥤ E) (F' : D ⥤ E) [Lifting L W F F']
     (G : E ⥤ E') : Lifting L W (F ⋙ G) (F' ⋙ G) :=
   ⟨isoWhiskerRight (iso L W F F') G⟩
 #align category_theory.localization.lifting.comp_right CategoryTheory.Localization.Lifting.compRight
@@ -418,7 +418,7 @@ theorem of_iso {L₁ L₂ : C ⥤ D} (e : L₁ ≅ L₂) [L₁.IsLocalization W]
 
 /-- If `L : C ⥤ D` is a localization for `W : MorphismProperty C`, then it is also
 the case of a functor obtained by post-composing `L` with an equivalence of categories. -/
-theorem of_equivalence_target {E : Type _} [Category E] (L' : C ⥤ E) (eq : D ≌ E)
+theorem of_equivalence_target {E : Type*} [Category E] (L' : C ⥤ E) (eq : D ≌ E)
     [L.IsLocalization W] (e : L ⋙ eq.functor ≅ L') : L'.IsLocalization W := by
   have h : W.IsInvertedBy L' := by
     rw [← MorphismProperty.IsInvertedBy.iff_of_iso W e]
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
-
-! This file was ported from Lean 3 source module category_theory.localization.predicate
-! leanprover-community/mathlib commit 8efef279998820353694feb6ff5631ed0d309ecc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Localization.Construction
 
+#align_import category_theory.localization.predicate from "leanprover-community/mathlib"@"8efef279998820353694feb6ff5631ed0d309ecc"
+
 /-!
 
 # Predicate for localized categories
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -236,7 +236,7 @@ instance : IsEquivalence (whiskeringLeftFunctor L W E) := by
         dsimp [Construction.whiskeringLeftEquivalence, equivalenceFromModel, whiskerLeft]
         erw [NatTrans.comp_app, NatTrans.comp_app, eqToHom_app, eqToHom_app, eqToHom_refl,
           eqToHom_refl, comp_id, id_comp]
-        . rfl
+        · rfl
         all_goals
           change (W.Q ⋙ Localization.Construction.lift L (inverts L W)) ⋙ _ = L ⋙ _
           rw [Construction.fac]
chore: add @[ext] lemmas for NatTrans synonyms (#5228)

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

Diff
@@ -232,7 +232,6 @@ instance : IsEquivalence (whiskeringLeftFunctor L W E) := by
             change (W.Q ⋙ Localization.Construction.lift L (inverts L W)) ⋙ F = L ⋙ F
             rw [Construction.fac]))
       fun τ => by
-        apply NatTrans.ext
         ext
         dsimp [Construction.whiskeringLeftEquivalence, equivalenceFromModel, whiskerLeft]
         erw [NatTrans.comp_app, NatTrans.comp_app, eqToHom_app, eqToHom_app, eqToHom_refl,
chore: bye-bye, solo bys! (#3825)

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

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

Diff
@@ -60,10 +60,8 @@ class IsLocalization : Prop where
 instance q_isLocalization : W.Q.IsLocalization W
     where
   inverts := W.Q_inverts
-  nonempty_isEquivalence :=
-    by
-    suffices Localization.Construction.lift W.Q W.Q_inverts = 𝟭 _
-      by
+  nonempty_isEquivalence := by
+    suffices Localization.Construction.lift W.Q W.Q_inverts = 𝟭 _ by
       apply Nonempty.intro
       rw [this]
       infer_instance
feat: port CategoryTheory.Localization.Predicate (#2930)

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Dependencies 2 + 261

262 files ported (99.2%)
108692 lines ported (99.9%)
Show graph

The unported dependencies are