category_theory.localization.construction
⟷
Mathlib.CategoryTheory.Localization.Construction
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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 CategoryTheory.MorphismProperty
+import CategoryTheory.MorphismProperty.Basic
import CategoryTheory.Category.Quiv
#align_import category_theory.localization.construction from "leanprover-community/mathlib"@"cb3ceec8485239a61ed51d944cb9a95b68c6bafc"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -218,7 +218,7 @@ theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.Q ⋙ G₁ = W.Q ⋙ G₂
· simpa only using functor.congr_hom h f
· have hw : W.Q.map w = (Wiso w hw).Hom := rfl
have hw' := functor.congr_hom h w
- simp only [functor.comp_map, hw] at hw'
+ simp only [functor.comp_map, hw] at hw'
refine' functor.congr_inv_of_congr_hom _ _ _ _ _ hw'
all_goals apply functor.congr_obj h
#align category_theory.localization.construction.uniq CategoryTheory.Localization.Construction.uniq
@@ -350,7 +350,7 @@ theorem natTrans_hcomp_injective {F G : W.Localization ⥤ D} {τ₁ τ₂ : F
(h : 𝟙 W.Q ◫ τ₁ = 𝟙 W.Q ◫ τ₂) : τ₁ = τ₂ := by
ext X
have eq := (obj_equiv W).right_inv X
- simp only [obj_equiv] at eq
+ simp only [obj_equiv] at eq
rw [← Eq, ← nat_trans.id_hcomp_app, ← nat_trans.id_hcomp_app, h]
#align category_theory.localization.construction.nat_trans_hcomp_injective CategoryTheory.Localization.Construction.natTrans_hcomp_injective
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ 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.MorphismProperty
-import Mathbin.CategoryTheory.Category.Quiv
+import CategoryTheory.MorphismProperty
+import CategoryTheory.Category.Quiv
#align_import category_theory.localization.construction from "leanprover-community/mathlib"@"cb3ceec8485239a61ed51d944cb9a95b68c6bafc"
@@ -167,7 +167,7 @@ variable {W} (G : C ⥤ D) (hG : W.IsInvertedBy G)
/-- The lifting of a functor to the path category of `loc_quiver W` -/
@[simps]
def liftToPathCategory : Paths (LocQuiver W) ⥤ D :=
- QuivCat.lift
+ Quiv.lift
{ obj := fun X => G.obj X.obj
map := fun X Y => by
rintro (f | ⟨g, hg⟩)
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -88,13 +88,15 @@ def ψ₂ {X Y : C} (w : X ⟶ Y) (hw : W w) : ιPaths W Y ⟶ ιPaths W X :=
#align category_theory.localization.construction.ψ₂ CategoryTheory.Localization.Construction.ψ₂
-/
+#print CategoryTheory.Localization.Construction.relations /-
/-- The relations by which we take the quotient in order to get the localized category. -/
inductive relations : HomRel (Paths (LocQuiver W))
| id (X : C) : relations (ψ₁ W (𝟙 X)) (𝟙 _)
| comp {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) : relations (ψ₁ W (f ≫ g)) (ψ₁ W f ≫ ψ₁ W g)
| Winv₁ {X Y : C} (w : X ⟶ Y) (hw : W w) : relations (ψ₁ W w ≫ ψ₂ W w hw) (𝟙 _)
| Winv₂ {X Y : C} (w : X ⟶ Y) (hw : W w) : relations (ψ₂ W w hw ≫ ψ₁ W w) (𝟙 _)
-#align category_theory.localization.construction.relations CategoryTheory.Localization.Construction.relationsₓ
+#align category_theory.localization.construction.relations CategoryTheory.Localization.Construction.relations
+-/
end Construction
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -88,15 +88,13 @@ def ψ₂ {X Y : C} (w : X ⟶ Y) (hw : W w) : ιPaths W Y ⟶ ιPaths W X :=
#align category_theory.localization.construction.ψ₂ CategoryTheory.Localization.Construction.ψ₂
-/
-#print CategoryTheory.Localization.Construction.relations /-
/-- The relations by which we take the quotient in order to get the localized category. -/
inductive relations : HomRel (Paths (LocQuiver W))
| id (X : C) : relations (ψ₁ W (𝟙 X)) (𝟙 _)
| comp {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) : relations (ψ₁ W (f ≫ g)) (ψ₁ W f ≫ ψ₁ W g)
| Winv₁ {X Y : C} (w : X ⟶ Y) (hw : W w) : relations (ψ₁ W w ≫ ψ₂ W w hw) (𝟙 _)
| Winv₂ {X Y : C} (w : X ⟶ Y) (hw : W w) : relations (ψ₂ W w hw ≫ ψ₁ W w) (𝟙 _)
-#align category_theory.localization.construction.relations CategoryTheory.Localization.Construction.relations
--/
+#align category_theory.localization.construction.relations CategoryTheory.Localization.Construction.relationsₓ
end Construction
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
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.construction
-! leanprover-community/mathlib commit cb3ceec8485239a61ed51d944cb9a95b68c6bafc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.MorphismProperty
import Mathbin.CategoryTheory.Category.Quiv
+#align_import category_theory.localization.construction from "leanprover-community/mathlib"@"cb3ceec8485239a61ed51d944cb9a95b68c6bafc"
+
/-!
# Construction of the localized category
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -252,7 +252,7 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
(hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.Q.map f))
(hP₂ : ∀ ⦃X Y : C⦄ (w : X ⟶ Y) (hw : W w), P (winv w hw)) (hP₃ : P.StableUnderComposition) :
P = ⊤ := by
- ext (X Y f)
+ ext X Y f
constructor
· intro hf
simp only [Pi.top_apply]
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -138,6 +138,7 @@ namespace Construction
variable {W}
+#print CategoryTheory.Localization.Construction.wIso /-
/-- The isomorphism in `W.localization` associated to a morphism `w` in W -/
def wIso {X Y : C} (w : X ⟶ Y) (hw : W w) : Iso (W.Q.obj X) (W.Q.obj Y)
where
@@ -146,11 +147,14 @@ def wIso {X Y : C} (w : X ⟶ Y) (hw : W w) : Iso (W.Q.obj X) (W.Q.obj Y)
hom_inv_id' := Quotient.sound _ (relations.Winv₁ w hw)
inv_hom_id' := Quotient.sound _ (relations.Winv₂ w hw)
#align category_theory.localization.construction.Wiso CategoryTheory.Localization.Construction.wIso
+-/
+#print CategoryTheory.Localization.Construction.winv /-
/-- The formal inverse in `W.localization` of a morphism `w` in `W`. -/
abbrev winv {X Y : C} (w : X ⟶ Y) (hw : W w) :=
(wIso w hw).inv
#align category_theory.localization.construction.Winv CategoryTheory.Localization.Construction.winv
+-/
variable (W)
@@ -162,8 +166,6 @@ theorem CategoryTheory.MorphismProperty.Q_inverts : W.IsInvertedBy W.Q := fun X
variable {W} (G : C ⥤ D) (hG : W.IsInvertedBy G)
-include G hG
-
#print CategoryTheory.Localization.Construction.liftToPathCategory /-
/-- The lifting of a functor to the path category of `loc_quiver W` -/
@[simps]
@@ -190,6 +192,7 @@ def lift : W.Localization ⥤ D :=
#align category_theory.localization.construction.lift CategoryTheory.Localization.Construction.lift
-/
+#print CategoryTheory.Localization.Construction.fac /-
@[simp]
theorem fac : W.Q ⋙ lift G hG = G :=
Functor.ext (fun X => rfl)
@@ -199,9 +202,9 @@ theorem fac : W.Q ⋙ lift G hG = G :=
dsimp [lift, lift_to_path_category, morphism_property.Q]
rw [compose_path_to_path])
#align category_theory.localization.construction.fac CategoryTheory.Localization.Construction.fac
+-/
-omit G hG
-
+#print CategoryTheory.Localization.Construction.uniq /-
theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.Q ⋙ G₁ = W.Q ⋙ G₂) : G₁ = G₂ :=
by
suffices h' : quotient.functor _ ⋙ G₁ = quotient.functor _ ⋙ G₂
@@ -222,6 +225,7 @@ theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.Q ⋙ G₁ = W.Q ⋙ G₂
refine' functor.congr_inv_of_congr_hom _ _ _ _ _ hw'
all_goals apply functor.congr_obj h
#align category_theory.localization.construction.uniq CategoryTheory.Localization.Construction.uniq
+-/
variable (W)
@@ -239,6 +243,7 @@ def objEquiv : C ≃ W.Localization where
variable {W}
+#print CategoryTheory.Localization.Construction.morphismProperty_is_top /-
/-- A `morphism_property` in `W.localization` is satisfied by all
morphisms in the localized category if it contains the image of the
morphisms in the original category, the inverses of the morphisms
@@ -273,7 +278,9 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
· apply hP₁
· apply hP₂
#align category_theory.localization.construction.morphism_property_is_top CategoryTheory.Localization.Construction.morphismProperty_is_top
+-/
+#print CategoryTheory.Localization.Construction.morphismProperty_is_top' /-
/-- A `morphism_property` in `W.localization` is satisfied by all
morphisms in the localized category if it contains the image of the
morphisms in the original category, if is stable under composition
@@ -284,13 +291,13 @@ theorem morphismProperty_is_top' (P : MorphismProperty W.Localization)
(hP₃ : P.StableUnderComposition) : P = ⊤ :=
morphismProperty_is_top P hP₁ (fun X Y w hw => hP₂ _ (hP₁ w)) hP₃
#align category_theory.localization.construction.morphism_property_is_top' CategoryTheory.Localization.Construction.morphismProperty_is_top'
+-/
namespace NatTransExtension
variable {F₁ F₂ : W.Localization ⥤ D} (τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂)
-include τ
-
+#print CategoryTheory.Localization.Construction.NatTransExtension.app /-
/-- If `F₁` and `F₂` are functors `W.localization ⥤ D` and if we have
`τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂`, we shall define a natural transformation `F₁ ⟶ F₂`.
This is the `app` field of this natural transformation. -/
@@ -298,11 +305,14 @@ def app (X : W.Localization) : F₁.obj X ⟶ F₂.obj X :=
eqToHom (congr_arg F₁.obj ((objEquiv W).right_inv X).symm) ≫
τ.app ((objEquiv W).invFun X) ≫ eqToHom (congr_arg F₂.obj ((objEquiv W).right_inv X))
#align category_theory.localization.construction.nat_trans_extension.app CategoryTheory.Localization.Construction.NatTransExtension.app
+-/
+#print CategoryTheory.Localization.Construction.NatTransExtension.app_eq /-
@[simp]
theorem app_eq (X : C) : (app τ) (W.Q.obj X) = τ.app X := by
simpa only [app, eq_to_hom_refl, comp_id, id_comp]
#align category_theory.localization.construction.nat_trans_extension.app_eq CategoryTheory.Localization.Construction.NatTransExtension.app_eq
+-/
end NatTransExtension
@@ -328,6 +338,7 @@ def natTransExtension {F₁ F₂ : W.Localization ⥤ D} (τ : W.Q ⋙ F₁ ⟶
#align category_theory.localization.construction.nat_trans_extension CategoryTheory.Localization.Construction.natTransExtension
-/
+#print CategoryTheory.Localization.Construction.natTransExtension_hcomp /-
@[simp]
theorem natTransExtension_hcomp {F G : W.Localization ⥤ D} (τ : W.Q ⋙ F ⟶ W.Q ⋙ G) :
𝟙 W.Q ◫ natTransExtension τ = τ := by
@@ -335,7 +346,9 @@ theorem natTransExtension_hcomp {F G : W.Localization ⥤ D} (τ : W.Q ⋙ F ⟶
simp only [nat_trans.hcomp_app, nat_trans.id_app, G.map_id, comp_id, nat_trans_extension_app,
nat_trans_extension.app_eq]
#align category_theory.localization.construction.nat_trans_extension_hcomp CategoryTheory.Localization.Construction.natTransExtension_hcomp
+-/
+#print CategoryTheory.Localization.Construction.natTrans_hcomp_injective /-
theorem natTrans_hcomp_injective {F G : W.Localization ⥤ D} {τ₁ τ₂ : F ⟶ G}
(h : 𝟙 W.Q ◫ τ₁ = 𝟙 W.Q ◫ τ₂) : τ₁ = τ₂ := by
ext X
@@ -343,6 +356,7 @@ theorem natTrans_hcomp_injective {F G : W.Localization ⥤ D} {τ₁ τ₂ : F
simp only [obj_equiv] at eq
rw [← Eq, ← nat_trans.id_hcomp_app, ← nat_trans.id_hcomp_app, h]
#align category_theory.localization.construction.nat_trans_hcomp_injective CategoryTheory.Localization.Construction.natTrans_hcomp_injective
+-/
variable (W D)
@@ -419,6 +433,7 @@ def counitIso : inverse W D ⋙ functor W D ≅ 𝟭 (W.FunctorsInverting D) :=
end WhiskeringLeftEquivalence
+#print CategoryTheory.Localization.Construction.whiskeringLeftEquivalence /-
/-- The equivalence of categories `(W.localization ⥤ D) ≌ (W.functors_inverting D)`
induced by the composition with `W.Q : C ⥤ W.localization`. -/
def whiskeringLeftEquivalence : W.Localization ⥤ D ≌ W.FunctorsInverting D
@@ -432,6 +447,7 @@ def whiskeringLeftEquivalence : W.Localization ⥤ D ≌ W.FunctorsInverting D
simpa only [eq_to_hom_app, whiskering_left_equivalence.unit_iso_hom,
whiskering_left_equivalence.counit_iso_hom, eq_to_hom_map, eq_to_hom_trans, eq_to_hom_refl]
#align category_theory.localization.construction.whiskering_left_equivalence CategoryTheory.Localization.Construction.whiskeringLeftEquivalence
+-/
end Construction
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -114,7 +114,8 @@ open Localization.Construction
in `W : morphism_property C` -/
@[nolint has_nonempty_instance]
def Localization :=
- CategoryTheory.Quotient (Localization.Construction.relations W)deriving Category
+ CategoryTheory.Quotient (Localization.Construction.relations W)
+deriving Category
#align category_theory.morphism_property.localization CategoryTheory.MorphismProperty.Localization
-/
@@ -217,7 +218,7 @@ theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.Q ⋙ G₁ = W.Q ⋙ G₂
· simpa only using functor.congr_hom h f
· have hw : W.Q.map w = (Wiso w hw).Hom := rfl
have hw' := functor.congr_hom h w
- simp only [functor.comp_map, hw] at hw'
+ simp only [functor.comp_map, hw] at hw'
refine' functor.congr_inv_of_congr_hom _ _ _ _ _ hw'
all_goals apply functor.congr_obj h
#align category_theory.localization.construction.uniq CategoryTheory.Localization.Construction.uniq
@@ -339,7 +340,7 @@ theorem natTrans_hcomp_injective {F G : W.Localization ⥤ D} {τ₁ τ₂ : F
(h : 𝟙 W.Q ◫ τ₁ = 𝟙 W.Q ◫ τ₂) : τ₁ = τ₂ := by
ext X
have eq := (obj_equiv W).right_inv X
- simp only [obj_equiv] at eq
+ simp only [obj_equiv] at eq
rw [← Eq, ← nat_trans.id_hcomp_app, ← nat_trans.id_hcomp_app, h]
#align category_theory.localization.construction.nat_trans_hcomp_injective CategoryTheory.Localization.Construction.natTrans_hcomp_injective
@@ -371,14 +372,14 @@ def inverse : W.FunctorsInverting D ⥤ W.Localization ⥤ D
rw [nat_trans_extension_hcomp]
ext X
simpa only [nat_trans.comp_app, eq_to_hom_app, eq_to_hom_refl, comp_id, id_comp,
- nat_trans.hcomp_id_app, nat_trans.id_app, Functor.map_id] )
+ nat_trans.hcomp_id_app, nat_trans.id_app, Functor.map_id])
map_comp' G₁ G₂ G₃ τ₁ τ₂ :=
natTrans_hcomp_injective
(by
ext X
simpa only [nat_trans_extension_hcomp, nat_trans.comp_app, eq_to_hom_app, eq_to_hom_refl,
id_comp, comp_id, nat_trans.hcomp_app, nat_trans.id_app, Functor.map_id,
- nat_trans_extension_app, nat_trans_extension.app_eq] )
+ nat_trans_extension_app, nat_trans_extension.app_eq])
#align category_theory.localization.construction.whiskering_left_equivalence.inverse CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.inverse
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -137,12 +137,6 @@ namespace Construction
variable {W}
-/- warning: category_theory.localization.construction.Wiso -> CategoryTheory.Localization.Construction.wIso 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} {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), (W X Y w) -> (CategoryTheory.Iso.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) Y))
-but is expected to have type
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1} {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), (W X Y w) -> (CategoryTheory.Iso.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) X) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) Y))
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.Wiso CategoryTheory.Localization.Construction.wIsoₓ'. -/
/-- The isomorphism in `W.localization` associated to a morphism `w` in W -/
def wIso {X Y : C} (w : X ⟶ Y) (hw : W w) : Iso (W.Q.obj X) (W.Q.obj Y)
where
@@ -152,12 +146,6 @@ def wIso {X Y : C} (w : X ⟶ Y) (hw : W w) : Iso (W.Q.obj X) (W.Q.obj Y)
inv_hom_id' := Quotient.sound _ (relations.Winv₂ w hw)
#align category_theory.localization.construction.Wiso CategoryTheory.Localization.Construction.wIso
-/- warning: category_theory.localization.construction.Winv -> CategoryTheory.Localization.Construction.winv 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} {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), (W X Y w) -> (Quiver.Hom.{succ (max u1 u2), u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) Y) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) X))
-but is expected to have type
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1} {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), (W X Y w) -> (Quiver.Hom.{succ (max u1 u2), u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) Y) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.Winv CategoryTheory.Localization.Construction.winvₓ'. -/
/-- The formal inverse in `W.localization` of a morphism `w` in `W`. -/
abbrev winv {X Y : C} (w : X ⟶ Y) (hw : W w) :=
(wIso w hw).inv
@@ -201,12 +189,6 @@ def lift : W.Localization ⥤ D :=
#align category_theory.localization.construction.lift CategoryTheory.Localization.Construction.lift
-/
-/- warning: category_theory.localization.construction.fac -> CategoryTheory.Localization.Construction.fac 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] (G : CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (hG : CategoryTheory.MorphismProperty.IsInvertedBy.{u2, u1, u3, u4} C _inst_1 D _inst_2 W G), Eq.{succ (max u2 u4 u1 u3)} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) (CategoryTheory.Localization.Construction.lift.{u1, u2, u3, u4} C _inst_1 W D _inst_2 G hG)) G
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {W : CategoryTheory.MorphismProperty.{u3, u4} C _inst_1} {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (G : CategoryTheory.Functor.{u3, u1, u4, u2} C _inst_1 D _inst_2) (hG : CategoryTheory.MorphismProperty.IsInvertedBy.{u3, u4, u2, u1} C _inst_1 D _inst_2 W G), Eq.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1)} (CategoryTheory.Functor.{u3, u1, u4, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u3, max u4 u3, u1, u4, u4, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) (CategoryTheory.Localization.Construction.lift.{u4, u3, u2, u1} C _inst_1 W D _inst_2 G hG)) G
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.fac CategoryTheory.Localization.Construction.facₓ'. -/
@[simp]
theorem fac : W.Q ⋙ lift G hG = G :=
Functor.ext (fun X => rfl)
@@ -219,12 +201,6 @@ theorem fac : W.Q ⋙ lift G hG = G :=
omit G hG
-/- warning: category_theory.localization.construction.uniq -> CategoryTheory.Localization.Construction.uniq 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] (G₁ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (G₂ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2), (Eq.{succ (max u2 u4 u1 u3)} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G₂)) -> (Eq.{succ (max (max u1 u2) u4 u1 u3)} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) G₁ G₂)
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {W : CategoryTheory.MorphismProperty.{u3, u4} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] (G₁ : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (G₂ : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2), (Eq.{max (max (max (succ u4) (succ u3)) (succ u1)) (succ u2)} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G₁) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G₂)) -> (Eq.{max (max (max (succ u4) (succ u3)) (succ u1)) (succ u2)} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) G₁ G₂)
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.uniq CategoryTheory.Localization.Construction.uniqₓ'. -/
theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.Q ⋙ G₁ = W.Q ⋙ G₂) : G₁ = G₂ :=
by
suffices h' : quotient.functor _ ⋙ G₁ = quotient.functor _ ⋙ G₂
@@ -262,9 +238,6 @@ def objEquiv : C ≃ W.Localization where
variable {W}
-/- warning: category_theory.localization.construction.morphism_property_is_top -> CategoryTheory.Localization.Construction.morphismProperty_is_top is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.morphism_property_is_top CategoryTheory.Localization.Construction.morphismProperty_is_topₓ'. -/
/-- A `morphism_property` in `W.localization` is satisfied by all
morphisms in the localized category if it contains the image of the
morphisms in the original category, the inverses of the morphisms
@@ -300,12 +273,6 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
· apply hP₂
#align category_theory.localization.construction.morphism_property_is_top CategoryTheory.Localization.Construction.morphismProperty_is_top
-/- warning: category_theory.localization.construction.morphism_property_is_top' -> CategoryTheory.Localization.Construction.morphismProperty_is_top' 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} (P : CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)), (forall {{X : C}} {{Y : C}} (f : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), P (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) Y) (CategoryTheory.Functor.map.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X Y f)) -> (forall {{X : CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W}} {{Y : CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W}} (e : CategoryTheory.Iso.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) X Y), (P X Y (CategoryTheory.Iso.hom.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) X Y e)) -> (P Y X (CategoryTheory.Iso.inv.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) X Y e))) -> (CategoryTheory.MorphismProperty.StableUnderComposition.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) P) -> (Eq.{max (succ u1) (succ (max u1 u2))} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) P (Top.top.{max u1 u2} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CompleteLattice.toHasTop.{max u1 u2} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.MorphismProperty.completeLattice.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} 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} (P : CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)), (forall {{X : C}} {{Y : C}} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), P (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) Y) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X Y f)) -> (forall {{X : CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W}} {{Y : CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W}} (e : CategoryTheory.Iso.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) X Y), (P X Y (CategoryTheory.Iso.hom.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) X Y e)) -> (P Y X (CategoryTheory.Iso.inv.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) X Y e))) -> (CategoryTheory.MorphismProperty.StableUnderComposition.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) P) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) P (Top.top.{max u2 u1} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) (CompleteLattice.toTop.{max u2 u1} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) (CategoryTheory.instCompleteLatticeMorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)))))
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.morphism_property_is_top' CategoryTheory.Localization.Construction.morphismProperty_is_top'ₓ'. -/
/-- A `morphism_property` in `W.localization` is satisfied by all
morphisms in the localized category if it contains the image of the
morphisms in the original category, if is stable under composition
@@ -323,12 +290,6 @@ variable {F₁ F₂ : W.Localization ⥤ D} (τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂)
include τ
-/- warning: category_theory.localization.construction.nat_trans_extension.app -> CategoryTheory.Localization.Construction.NatTransExtension.app 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F₁ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {F₂ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2}, (Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₂)) -> (forall (X : CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W), Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.obj.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 F₁ X) (CategoryTheory.Functor.obj.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 F₂ X))
-but is expected to have type
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F₁ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2} {F₂ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2}, (Quiver.Hom.{max (succ u1) (succ u4), max (max (max u3 u1) u4) u2} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₂)) -> (forall (X : CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W), Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2 F₁) X) (Prefunctor.obj.{max (succ u1) (succ u2), succ u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2 F₂) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_extension.app CategoryTheory.Localization.Construction.NatTransExtension.appₓ'. -/
/-- If `F₁` and `F₂` are functors `W.localization ⥤ D` and if we have
`τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂`, we shall define a natural transformation `F₁ ⟶ F₂`.
This is the `app` field of this natural transformation. -/
@@ -337,9 +298,6 @@ def app (X : W.Localization) : F₁.obj X ⟶ F₂.obj X :=
τ.app ((objEquiv W).invFun X) ≫ eqToHom (congr_arg F₂.obj ((objEquiv W).right_inv X))
#align category_theory.localization.construction.nat_trans_extension.app CategoryTheory.Localization.Construction.NatTransExtension.app
-/- warning: category_theory.localization.construction.nat_trans_extension.app_eq -> CategoryTheory.Localization.Construction.NatTransExtension.app_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_extension.app_eq CategoryTheory.Localization.Construction.NatTransExtension.app_eqₓ'. -/
@[simp]
theorem app_eq (X : C) : (app τ) (W.Q.obj X) = τ.app X := by
simpa only [app, eq_to_hom_refl, comp_id, id_comp]
@@ -369,12 +327,6 @@ def natTransExtension {F₁ F₂ : W.Localization ⥤ D} (τ : W.Q ⋙ F₁ ⟶
#align category_theory.localization.construction.nat_trans_extension CategoryTheory.Localization.Construction.natTransExtension
-/
-/- warning: category_theory.localization.construction.nat_trans_extension_hcomp -> CategoryTheory.Localization.Construction.natTransExtension_hcomp 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {G : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} (τ : Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G)), Eq.{succ (max u1 u4)} (Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G)) (CategoryTheory.NatTrans.hcomp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Functor.category.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) (CategoryTheory.Localization.Construction.natTransExtension.{u1, u2, u3, u4} C _inst_1 W D _inst_2 F G τ)) τ
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {W : CategoryTheory.MorphismProperty.{u3, u4} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] {F : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2} {G : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2} (τ : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u1 u4) u2) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G)), Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u1 u4) u2) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u1) u3) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u1) u3) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G)) (CategoryTheory.NatTrans.hcomp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Functor.category.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W)) (CategoryTheory.Localization.Construction.natTransExtension.{u4, u3, u1, u2} C _inst_1 W D _inst_2 F G τ)) τ
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_extension_hcomp CategoryTheory.Localization.Construction.natTransExtension_hcompₓ'. -/
@[simp]
theorem natTransExtension_hcomp {F G : W.Localization ⥤ D} (τ : W.Q ⋙ F ⟶ W.Q ⋙ G) :
𝟙 W.Q ◫ natTransExtension τ = τ := by
@@ -383,9 +335,6 @@ theorem natTransExtension_hcomp {F G : W.Localization ⥤ D} (τ : W.Q ⋙ F ⟶
nat_trans_extension.app_eq]
#align category_theory.localization.construction.nat_trans_extension_hcomp CategoryTheory.Localization.Construction.natTransExtension_hcomp
-/- warning: category_theory.localization.construction.nat_trans_hcomp_injective -> CategoryTheory.Localization.Construction.natTrans_hcomp_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_hcomp_injective CategoryTheory.Localization.Construction.natTrans_hcomp_injectiveₓ'. -/
theorem natTrans_hcomp_injective {F G : W.Localization ⥤ D} {τ₁ τ₂ : F ⟶ G}
(h : 𝟙 W.Q ◫ τ₁ = 𝟙 W.Q ◫ τ₂) : τ₁ = τ₂ := by
ext X
@@ -469,12 +418,6 @@ def counitIso : inverse W D ⋙ functor W D ≅ 𝟭 (W.FunctorsInverting D) :=
end WhiskeringLeftEquivalence
-/- warning: category_theory.localization.construction.whiskering_left_equivalence -> CategoryTheory.Localization.Construction.whiskeringLeftEquivalence 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) (D : Type.{u3}) [_inst_2 : CategoryTheory.Category.{u4, u3} D], CategoryTheory.Equivalence.{max u1 u4, max u1 u4, max (max u1 u2) u4 u1 u3, max u2 u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.MorphismProperty.FunctorsInverting.{u2, u1, u3, u4} C _inst_1 W D _inst_2) (CategoryTheory.MorphismProperty.FunctorsInverting.category.{u2, u3, u1, u4} C _inst_1 W D _inst_2)
-but is expected to have type
- forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1) (D : Type.{u3}) [_inst_2 : CategoryTheory.Category.{u4, u3} D], CategoryTheory.Equivalence.{max u1 u4, max u1 u4, max (max (max u3 u1) u4) u1 u2, max (max (max u1 u2) u4) u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.MorphismProperty.FunctorsInverting.{u2, u1, u3, u4} C _inst_1 W D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.MorphismProperty.instCategoryFunctorsInverting.{u2, u1, u3, u4} C _inst_1 W D _inst_2)
-Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.whiskering_left_equivalence CategoryTheory.Localization.Construction.whiskeringLeftEquivalenceₓ'. -/
/-- The equivalence of categories `(W.localization ⥤ D) ≌ (W.functors_inverting D)`
induced by the composition with `W.Q : C ⥤ W.localization`. -/
def whiskeringLeftEquivalence : W.Localization ⥤ D ≌ W.FunctorsInverting D
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -256,9 +256,7 @@ def objEquiv : C ≃ W.Localization where
toFun := W.Q.obj
invFun X := X.as.obj
left_inv X := rfl
- right_inv := by
- rintro ⟨⟨X⟩⟩
- rfl
+ right_inv := by rintro ⟨⟨X⟩⟩; rfl
#align category_theory.localization.construction.obj_equiv CategoryTheory.Localization.Construction.objEquiv
-/
@@ -279,8 +277,7 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
constructor
· intro hf
simp only [Pi.top_apply]
- · intro hf
- clear hf
+ · intro hf; clear hf
let G : _ ⥤ W.localization := quotient.functor _
suffices
∀ (X₁ X₂ : C)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -265,10 +265,7 @@ def objEquiv : C ≃ W.Localization where
variable {W}
/- warning: category_theory.localization.construction.morphism_property_is_top -> CategoryTheory.Localization.Construction.morphismProperty_is_top 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} (P : CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)), (forall {{X : C}} {{Y : C}} (f : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), P (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) Y) (CategoryTheory.Functor.map.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X Y f)) -> (forall {{X : C}} {{Y : C}} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) (hw : W X Y w), P (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) Y) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) X) (CategoryTheory.Localization.Construction.winv.{u1, u2} C _inst_1 (fun (X : C) (Y : C) (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w) X Y w hw)) -> (CategoryTheory.MorphismProperty.StableUnderComposition.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) P) -> (Eq.{max (succ u1) (succ (max u1 u2))} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) P (Top.top.{max u1 u2} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CompleteLattice.toHasTop.{max u1 u2} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.MorphismProperty.completeLattice.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} 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} (P : CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)), (forall {{X : C}} {{Y : C}} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), P (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) Y) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X Y f)) -> (forall {{X : C}} {{Y : C}} (w : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (hw : W X Y w), P (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) Y) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X) (CategoryTheory.Localization.Construction.winv.{u2, u1} C _inst_1 W X Y w hw)) -> (CategoryTheory.MorphismProperty.StableUnderComposition.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) P) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) P (Top.top.{max u2 u1} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) (CompleteLattice.toTop.{max u2 u1} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) (CategoryTheory.instCompleteLatticeMorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.morphism_property_is_top CategoryTheory.Localization.Construction.morphismProperty_is_topₓ'. -/
/-- A `morphism_property` in `W.localization` is satisfied by all
morphisms in the localized category if it contains the image of the
@@ -344,10 +341,7 @@ def app (X : W.Localization) : F₁.obj X ⟶ F₂.obj X :=
#align category_theory.localization.construction.nat_trans_extension.app CategoryTheory.Localization.Construction.NatTransExtension.app
/- warning: category_theory.localization.construction.nat_trans_extension.app_eq -> CategoryTheory.Localization.Construction.NatTransExtension.app_eq 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F₁ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {F₂ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} (τ : Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₂)) (X : C), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.obj.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 F₁ (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X)) (CategoryTheory.Functor.obj.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 F₂ (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X))) (CategoryTheory.Localization.Construction.NatTransExtension.app.{u1, u2, u3, u4} C _inst_1 W D _inst_2 F₁ F₂ τ (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₂) τ X)
-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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F₁ : CategoryTheory.Functor.{max u2 u1, u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2} {F₂ : CategoryTheory.Functor.{max u2 u1, u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2} (τ : Quiver.Hom.{max (succ u2) (succ u4), max (max (max u3 u2) u4) u1} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u1) u3) u4} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u1) u3) u4} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u1, max u2 u1, u4, u2, u2, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u1, max u2 u1, u4, u2, u2, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W) F₂)) (X : C), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 F₁) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 F₂) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X))) (CategoryTheory.Localization.Construction.NatTransExtension.app.{u2, u1, u3, u4} C _inst_1 W D _inst_2 F₁ F₂ τ (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X)) (CategoryTheory.NatTrans.app.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, max u2 u1, u4, u2, u2, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u1, max u2 u1, u4, u2, u2, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W) F₂) τ X)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_extension.app_eq CategoryTheory.Localization.Construction.NatTransExtension.app_eqₓ'. -/
@[simp]
theorem app_eq (X : C) : (app τ) (W.Q.obj X) = τ.app X := by
@@ -393,10 +387,7 @@ theorem natTransExtension_hcomp {F G : W.Localization ⥤ D} (τ : W.Q ⋙ F ⟶
#align category_theory.localization.construction.nat_trans_extension_hcomp CategoryTheory.Localization.Construction.natTransExtension_hcomp
/- warning: category_theory.localization.construction.nat_trans_hcomp_injective -> CategoryTheory.Localization.Construction.natTrans_hcomp_injective 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {G : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {τ₁ : Quiver.Hom.{succ (max u1 u4), max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2))) F G} {τ₂ : Quiver.Hom.{succ (max u1 u4), max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2))) F G}, (Eq.{succ (max u1 u4)} (Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G)) (CategoryTheory.NatTrans.hcomp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Functor.category.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) τ₁) (CategoryTheory.NatTrans.hcomp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Functor.category.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) τ₂)) -> (Eq.{succ (max u1 u4)} (Quiver.Hom.{succ (max u1 u4), max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2))) F G) τ₁ τ₂)
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {W : CategoryTheory.MorphismProperty.{u3, u4} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] {F : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2} {G : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2} {τ₁ : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2))) F G} {τ₂ : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2))) F G}, (Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u1 u4) u2) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u1) u3) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u1) u3) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G)) (CategoryTheory.NatTrans.hcomp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Functor.category.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W)) τ₁) (CategoryTheory.NatTrans.hcomp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Functor.category.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W)) τ₂)) -> (Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2))) F G) τ₁ τ₂)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_hcomp_injective CategoryTheory.Localization.Construction.natTrans_hcomp_injectiveₓ'. -/
theorem natTrans_hcomp_injective {F G : W.Localization ⥤ D} {τ₁ τ₂ : F ⟶ G}
(h : 𝟙 W.Q ◫ τ₁ = 𝟙 W.Q ◫ τ₂) : τ₁ = τ₂ := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/55d771df074d0dd020139ee1cd4b95521422df9f
@@ -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.construction
-! leanprover-community/mathlib commit 1a5e56f2166e4e9d0964c71f4273b1d39227678d
+! leanprover-community/mathlib commit cb3ceec8485239a61ed51d944cb9a95b68c6bafc
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.CategoryTheory.Category.Quiv
# Construction of the localized category
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file constructs the localized category, obtained by formally inverting
a class of maps `W : morphism_property C` in a category `C`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/b19481deb571022990f1baa9cbf9172e6757a479
@@ -52,6 +52,7 @@ namespace Localization
namespace Construction
+#print CategoryTheory.Localization.Construction.LocQuiver /-
/-- If `W : morphism_property C`, `loc_quiver W` is a quiver with the same objects
as `C`, and whose morphisms are those in `C` and placeholders for formal
inverses of the morphisms in `W`. -/
@@ -59,27 +60,35 @@ inverses of the morphisms in `W`. -/
structure LocQuiver (W : MorphismProperty C) where
obj : C
#align category_theory.localization.construction.loc_quiver CategoryTheory.Localization.Construction.LocQuiver
+-/
instance : Quiver (LocQuiver W) where Hom A B := Sum (A.obj ⟶ B.obj) { f : B.obj ⟶ A.obj // W f }
+#print CategoryTheory.Localization.Construction.ιPaths /-
/-- The object in the path category of `loc_quiver W` attached to an object in
the category `C` -/
def ιPaths (X : C) : Paths (LocQuiver W) :=
⟨X⟩
#align category_theory.localization.construction.ι_paths CategoryTheory.Localization.Construction.ιPaths
+-/
+#print CategoryTheory.Localization.Construction.ψ₁ /-
/-- The morphism in the path category associated to a morphism in the original category. -/
@[simp]
def ψ₁ {X Y : C} (f : X ⟶ Y) : ιPaths W X ⟶ ιPaths W Y :=
Paths.of.map (Sum.inl f)
#align category_theory.localization.construction.ψ₁ CategoryTheory.Localization.Construction.ψ₁
+-/
+#print CategoryTheory.Localization.Construction.ψ₂ /-
/-- The morphism in the path category corresponding to a formal inverse. -/
@[simp]
def ψ₂ {X Y : C} (w : X ⟶ Y) (hw : W w) : ιPaths W Y ⟶ ιPaths W X :=
Paths.of.map (Sum.inr ⟨w, hw⟩)
#align category_theory.localization.construction.ψ₂ CategoryTheory.Localization.Construction.ψ₂
+-/
+#print CategoryTheory.Localization.Construction.relations /-
/-- The relations by which we take the quotient in order to get the localized category. -/
inductive relations : HomRel (Paths (LocQuiver W))
| id (X : C) : relations (ψ₁ W (𝟙 X)) (𝟙 _)
@@ -87,6 +96,7 @@ inductive relations : HomRel (Paths (LocQuiver W))
| Winv₁ {X Y : C} (w : X ⟶ Y) (hw : W w) : relations (ψ₁ W w ≫ ψ₂ W w hw) (𝟙 _)
| Winv₂ {X Y : C} (w : X ⟶ Y) (hw : W w) : relations (ψ₂ W w hw ≫ ψ₁ W w) (𝟙 _)
#align category_theory.localization.construction.relations CategoryTheory.Localization.Construction.relations
+-/
end Construction
@@ -96,21 +106,25 @@ namespace MorphismProperty
open Localization.Construction
+#print CategoryTheory.MorphismProperty.Localization /-
/-- The localized category obtained by formally inverting the morphisms
in `W : morphism_property C` -/
@[nolint has_nonempty_instance]
def Localization :=
CategoryTheory.Quotient (Localization.Construction.relations W)deriving Category
#align category_theory.morphism_property.localization CategoryTheory.MorphismProperty.Localization
+-/
+#print CategoryTheory.MorphismProperty.Q /-
/-- The obvious functor `C ⥤ W.localization` -/
-def q : C ⥤ W.Localization
+def Q : C ⥤ W.Localization
where
obj X := (Quotient.functor _).obj (Paths.of.obj ⟨X⟩)
map X Y f := (Quotient.functor _).map (ψ₁ W f)
map_id' X := Quotient.sound _ (relations.id X)
map_comp' X Z Y f g := Quotient.sound _ (relations.comp f g)
-#align category_theory.morphism_property.Q CategoryTheory.MorphismProperty.q
+#align category_theory.morphism_property.Q CategoryTheory.MorphismProperty.Q
+-/
end MorphismProperty
@@ -120,30 +134,45 @@ namespace Construction
variable {W}
+/- warning: category_theory.localization.construction.Wiso -> CategoryTheory.Localization.Construction.wIso 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} {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), (W X Y w) -> (CategoryTheory.Iso.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) Y))
+but is expected to have type
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1} {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), (W X Y w) -> (CategoryTheory.Iso.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) X) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) Y))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.Wiso CategoryTheory.Localization.Construction.wIsoₓ'. -/
/-- The isomorphism in `W.localization` associated to a morphism `w` in W -/
-def wiso {X Y : C} (w : X ⟶ Y) (hw : W w) : Iso (W.q.obj X) (W.q.obj Y)
+def wIso {X Y : C} (w : X ⟶ Y) (hw : W w) : Iso (W.Q.obj X) (W.Q.obj Y)
where
- Hom := W.q.map w
+ Hom := W.Q.map w
inv := (Quotient.functor _).map (Paths.of.map (Sum.inr ⟨w, hw⟩))
hom_inv_id' := Quotient.sound _ (relations.Winv₁ w hw)
inv_hom_id' := Quotient.sound _ (relations.Winv₂ w hw)
-#align category_theory.localization.construction.Wiso CategoryTheory.Localization.Construction.wiso
-
+#align category_theory.localization.construction.Wiso CategoryTheory.Localization.Construction.wIso
+
+/- warning: category_theory.localization.construction.Winv -> CategoryTheory.Localization.Construction.winv 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} {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), (W X Y w) -> (Quiver.Hom.{succ (max u1 u2), u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)))) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) Y) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) X))
+but is expected to have type
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1} {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), (W X Y w) -> (Quiver.Hom.{succ (max u1 u2), u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) Y) (Prefunctor.obj.{succ u2, max (succ u1) (succ u2), u1, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.Winv CategoryTheory.Localization.Construction.winvₓ'. -/
/-- The formal inverse in `W.localization` of a morphism `w` in `W`. -/
abbrev winv {X Y : C} (w : X ⟶ Y) (hw : W w) :=
- (wiso w hw).inv
+ (wIso w hw).inv
#align category_theory.localization.construction.Winv CategoryTheory.Localization.Construction.winv
variable (W)
-theorem CategoryTheory.MorphismProperty.q_inverts : W.IsInvertedBy W.q := fun X Y w hw =>
- IsIso.of_iso (Localization.Construction.wiso w hw)
-#align category_theory.morphism_property.Q_inverts CategoryTheory.MorphismProperty.q_inverts
+#print CategoryTheory.MorphismProperty.Q_inverts /-
+theorem CategoryTheory.MorphismProperty.Q_inverts : W.IsInvertedBy W.Q := fun X Y w hw =>
+ IsIso.of_iso (Localization.Construction.wIso w hw)
+#align category_theory.morphism_property.Q_inverts CategoryTheory.MorphismProperty.Q_inverts
+-/
variable {W} (G : C ⥤ D) (hG : W.IsInvertedBy G)
include G hG
+#print CategoryTheory.Localization.Construction.liftToPathCategory /-
/-- The lifting of a functor to the path category of `loc_quiver W` -/
@[simps]
def liftToPathCategory : Paths (LocQuiver W) ⥤ D :=
@@ -155,7 +184,9 @@ def liftToPathCategory : Paths (LocQuiver W) ⥤ D :=
· haveI := hG g hg
exact inv (G.map g) }
#align category_theory.localization.construction.lift_to_path_category CategoryTheory.Localization.Construction.liftToPathCategory
+-/
+#print CategoryTheory.Localization.Construction.lift /-
/-- The lifting of a functor `C ⥤ D` inverting `W` as a functor `W.localization ⥤ D` -/
@[simps]
def lift : W.Localization ⥤ D :=
@@ -165,9 +196,16 @@ def lift : W.Localization ⥤ D :=
rcases r with ⟨⟩
tidy)
#align category_theory.localization.construction.lift CategoryTheory.Localization.Construction.lift
+-/
+/- warning: category_theory.localization.construction.fac -> CategoryTheory.Localization.Construction.fac 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] (G : CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (hG : CategoryTheory.MorphismProperty.IsInvertedBy.{u2, u1, u3, u4} C _inst_1 D _inst_2 W G), Eq.{succ (max u2 u4 u1 u3)} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) (CategoryTheory.Localization.Construction.lift.{u1, u2, u3, u4} C _inst_1 W D _inst_2 G hG)) G
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {W : CategoryTheory.MorphismProperty.{u3, u4} C _inst_1} {D : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} D] (G : CategoryTheory.Functor.{u3, u1, u4, u2} C _inst_1 D _inst_2) (hG : CategoryTheory.MorphismProperty.IsInvertedBy.{u3, u4, u2, u1} C _inst_1 D _inst_2 W G), Eq.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1)} (CategoryTheory.Functor.{u3, u1, u4, u2} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u3, max u4 u3, u1, u4, u4, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) (CategoryTheory.Localization.Construction.lift.{u4, u3, u2, u1} C _inst_1 W D _inst_2 G hG)) G
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.fac CategoryTheory.Localization.Construction.facₓ'. -/
@[simp]
-theorem fac : W.q ⋙ lift G hG = G :=
+theorem fac : W.Q ⋙ lift G hG = G :=
Functor.ext (fun X => rfl)
(by
intro X Y f
@@ -178,7 +216,13 @@ theorem fac : W.q ⋙ lift G hG = G :=
omit G hG
-theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.q ⋙ G₁ = W.q ⋙ G₂) : G₁ = G₂ :=
+/- warning: category_theory.localization.construction.uniq -> CategoryTheory.Localization.Construction.uniq 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] (G₁ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (G₂ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2), (Eq.{succ (max u2 u4 u1 u3)} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G₂)) -> (Eq.{succ (max (max u1 u2) u4 u1 u3)} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) G₁ G₂)
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {W : CategoryTheory.MorphismProperty.{u3, u4} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] (G₁ : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (G₂ : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2), (Eq.{max (max (max (succ u4) (succ u3)) (succ u1)) (succ u2)} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G₁) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G₂)) -> (Eq.{max (max (max (succ u4) (succ u3)) (succ u1)) (succ u2)} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) G₁ G₂)
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.uniq CategoryTheory.Localization.Construction.uniqₓ'. -/
+theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.Q ⋙ G₁ = W.Q ⋙ G₂) : G₁ = G₂ :=
by
suffices h' : quotient.functor _ ⋙ G₁ = quotient.functor _ ⋙ G₂
· refine' Functor.ext _ _
@@ -201,26 +245,34 @@ theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.q ⋙ G₁ = W.q ⋙ G₂
variable (W)
+#print CategoryTheory.Localization.Construction.objEquiv /-
/-- The canonical bijection between objects in a category and its
localization with respect to a morphism_property `W` -/
@[simps]
def objEquiv : C ≃ W.Localization where
- toFun := W.q.obj
+ toFun := W.Q.obj
invFun X := X.as.obj
left_inv X := rfl
right_inv := by
rintro ⟨⟨X⟩⟩
rfl
#align category_theory.localization.construction.obj_equiv CategoryTheory.Localization.Construction.objEquiv
+-/
variable {W}
+/- warning: category_theory.localization.construction.morphism_property_is_top -> CategoryTheory.Localization.Construction.morphismProperty_is_top 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} (P : CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)), (forall {{X : C}} {{Y : C}} (f : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), P (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) Y) (CategoryTheory.Functor.map.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X Y f)) -> (forall {{X : C}} {{Y : C}} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) (hw : W X Y w), P (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) Y) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 (fun {X : C} {Y : C} (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w)) X) (CategoryTheory.Localization.Construction.winv.{u1, u2} C _inst_1 (fun (X : C) (Y : C) (w : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y) => W X Y w) X Y w hw)) -> (CategoryTheory.MorphismProperty.StableUnderComposition.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) P) -> (Eq.{max (succ u1) (succ (max u1 u2))} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) P (Top.top.{max u1 u2} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CompleteLattice.toHasTop.{max u1 u2} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.MorphismProperty.completeLattice.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} 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} (P : CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)), (forall {{X : C}} {{Y : C}} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), P (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) Y) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X Y f)) -> (forall {{X : C}} {{Y : C}} (w : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (hw : W X Y w), P (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) Y) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X) (CategoryTheory.Localization.Construction.winv.{u2, u1} C _inst_1 W X Y w hw)) -> (CategoryTheory.MorphismProperty.StableUnderComposition.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) P) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) P (Top.top.{max u2 u1} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) (CompleteLattice.toTop.{max u2 u1} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) (CategoryTheory.instCompleteLatticeMorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.morphism_property_is_top CategoryTheory.Localization.Construction.morphismProperty_is_topₓ'. -/
/-- A `morphism_property` in `W.localization` is satisfied by all
morphisms in the localized category if it contains the image of the
morphisms in the original category, the inverses of the morphisms
in `W` and if it is stable under composition -/
theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
- (hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.q.map f))
+ (hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.Q.map f))
(hP₂ : ∀ ⦃X Y : C⦄ (w : X ⟶ Y) (hw : W w), P (winv w hw)) (hP₃ : P.StableUnderComposition) :
P = ⊤ := by
ext (X Y f)
@@ -251,12 +303,18 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
· apply hP₂
#align category_theory.localization.construction.morphism_property_is_top CategoryTheory.Localization.Construction.morphismProperty_is_top
+/- warning: category_theory.localization.construction.morphism_property_is_top' -> CategoryTheory.Localization.Construction.morphismProperty_is_top' 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} (P : CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)), (forall {{X : C}} {{Y : C}} (f : Quiver.Hom.{succ u2, u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u1} C (CategoryTheory.Category.toCategoryStruct.{u2, u1} C _inst_1)) X Y), P (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X) (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) Y) (CategoryTheory.Functor.map.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X Y f)) -> (forall {{X : CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W}} {{Y : CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W}} (e : CategoryTheory.Iso.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) X Y), (P X Y (CategoryTheory.Iso.hom.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) X Y e)) -> (P Y X (CategoryTheory.Iso.inv.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) X Y e))) -> (CategoryTheory.MorphismProperty.StableUnderComposition.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) P) -> (Eq.{max (succ u1) (succ (max u1 u2))} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) P (Top.top.{max u1 u2} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CompleteLattice.toHasTop.{max u1 u2} (CategoryTheory.MorphismProperty.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.MorphismProperty.completeLattice.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} 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} (P : CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)), (forall {{X : C}} {{Y : C}} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), P (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) Y) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X Y f)) -> (forall {{X : CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W}} {{Y : CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W}} (e : CategoryTheory.Iso.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) X Y), (P X Y (CategoryTheory.Iso.hom.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) X Y e)) -> (P Y X (CategoryTheory.Iso.inv.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) X Y e))) -> (CategoryTheory.MorphismProperty.StableUnderComposition.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) P) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) P (Top.top.{max u2 u1} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) (CompleteLattice.toTop.{max u2 u1} (CategoryTheory.MorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)) (CategoryTheory.instCompleteLatticeMorphismProperty.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.morphism_property_is_top' CategoryTheory.Localization.Construction.morphismProperty_is_top'ₓ'. -/
/-- A `morphism_property` in `W.localization` is satisfied by all
morphisms in the localized category if it contains the image of the
morphisms in the original category, if is stable under composition
and if the property is stable by passing to inverses. -/
theorem morphismProperty_is_top' (P : MorphismProperty W.Localization)
- (hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.q.map f))
+ (hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.Q.map f))
(hP₂ : ∀ ⦃X Y : W.Localization⦄ (e : X ≅ Y) (he : P e.Hom), P e.inv)
(hP₃ : P.StableUnderComposition) : P = ⊤ :=
morphismProperty_is_top P hP₁ (fun X Y w hw => hP₂ _ (hP₁ w)) hP₃
@@ -264,10 +322,16 @@ theorem morphismProperty_is_top' (P : MorphismProperty W.Localization)
namespace NatTransExtension
-variable {F₁ F₂ : W.Localization ⥤ D} (τ : W.q ⋙ F₁ ⟶ W.q ⋙ F₂)
+variable {F₁ F₂ : W.Localization ⥤ D} (τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂)
include τ
+/- warning: category_theory.localization.construction.nat_trans_extension.app -> CategoryTheory.Localization.Construction.NatTransExtension.app 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F₁ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {F₂ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2}, (Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₂)) -> (forall (X : CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W), Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.obj.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 F₁ X) (CategoryTheory.Functor.obj.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 F₂ X))
+but is expected to have type
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F₁ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2} {F₂ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2}, (Quiver.Hom.{max (succ u1) (succ u4), max (max (max u3 u1) u4) u2} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max (max u1 u2) u3) u4} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₂)) -> (forall (X : CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W), Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (Prefunctor.obj.{max (succ u1) (succ u2), succ u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2 F₁) X) (Prefunctor.obj.{max (succ u1) (succ u2), succ u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, u1} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2 F₂) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_extension.app CategoryTheory.Localization.Construction.NatTransExtension.appₓ'. -/
/-- If `F₁` and `F₂` are functors `W.localization ⥤ D` and if we have
`τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂`, we shall define a natural transformation `F₁ ⟶ F₂`.
This is the `app` field of this natural transformation. -/
@@ -276,17 +340,24 @@ def app (X : W.Localization) : F₁.obj X ⟶ F₂.obj X :=
τ.app ((objEquiv W).invFun X) ≫ eqToHom (congr_arg F₂.obj ((objEquiv W).right_inv X))
#align category_theory.localization.construction.nat_trans_extension.app CategoryTheory.Localization.Construction.NatTransExtension.app
+/- warning: category_theory.localization.construction.nat_trans_extension.app_eq -> CategoryTheory.Localization.Construction.NatTransExtension.app_eq 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F₁ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {F₂ : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} (τ : Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₂)) (X : C), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.obj.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 F₁ (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X)) (CategoryTheory.Functor.obj.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 F₂ (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X))) (CategoryTheory.Localization.Construction.NatTransExtension.app.{u1, u2, u3, u4} C _inst_1 W D _inst_2 F₁ F₂ τ (CategoryTheory.Functor.obj.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) X)) (CategoryTheory.NatTrans.app.{u2, u4, u1, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F₂) τ X)
+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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F₁ : CategoryTheory.Functor.{max u2 u1, u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2} {F₂ : CategoryTheory.Functor.{max u2 u1, u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2} (τ : Quiver.Hom.{max (succ u2) (succ u4), max (max (max u3 u2) u4) u1} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u1) u3) u4} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u1) u3) u4} (CategoryTheory.Functor.{u1, u4, u2, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u1, max u2 u1, u4, u2, u2, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u1, max u2 u1, u4, u2, u2, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W) F₂)) (X : C), Eq.{succ u4} (Quiver.Hom.{succ u4, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 F₁) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X)) (Prefunctor.obj.{max (succ u2) (succ u1), succ u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u3} D (CategoryTheory.Category.toCategoryStruct.{u4, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u4, u2, u3} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 F₂) (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X))) (CategoryTheory.Localization.Construction.NatTransExtension.app.{u2, u1, u3, u4} C _inst_1 W D _inst_2 F₁ F₂ τ (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, u2} (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, u2} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W)) X)) (CategoryTheory.NatTrans.app.{u1, u4, u2, u3} C _inst_1 D _inst_2 (CategoryTheory.Functor.comp.{u1, max u2 u1, u4, u2, u2, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W) F₁) (CategoryTheory.Functor.comp.{u1, max u2 u1, u4, u2, u2, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u2, u1} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u2, u1} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u2, u1} C _inst_1 W) F₂) τ X)
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_extension.app_eq CategoryTheory.Localization.Construction.NatTransExtension.app_eqₓ'. -/
@[simp]
-theorem app_eq (X : C) : (app τ) (W.q.obj X) = τ.app X := by
+theorem app_eq (X : C) : (app τ) (W.Q.obj X) = τ.app X := by
simpa only [app, eq_to_hom_refl, comp_id, id_comp]
#align category_theory.localization.construction.nat_trans_extension.app_eq CategoryTheory.Localization.Construction.NatTransExtension.app_eq
end NatTransExtension
+#print CategoryTheory.Localization.Construction.natTransExtension /-
/-- If `F₁` and `F₂` are functors `W.localization ⥤ D`, a natural transformation `F₁ ⟶ F₂`
can be obtained from a natural transformation `W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂`. -/
@[simps]
-def natTransExtension {F₁ F₂ : W.Localization ⥤ D} (τ : W.q ⋙ F₁ ⟶ W.q ⋙ F₂) : F₁ ⟶ F₂
+def natTransExtension {F₁ F₂ : W.Localization ⥤ D} (τ : W.Q ⋙ F₁ ⟶ W.Q ⋙ F₂) : F₁ ⟶ F₂
where
app := NatTransExtension.app τ
naturality' X Y f :=
@@ -302,35 +373,51 @@ def natTransExtension {F₁ F₂ : W.Localization ⥤ D} (τ : W.q ⋙ F₁ ⟶
have hf : (⊤ : morphism_property _) f := by simp only [Pi.top_apply]
simpa only [← h] using hf
#align category_theory.localization.construction.nat_trans_extension CategoryTheory.Localization.Construction.natTransExtension
+-/
+/- warning: category_theory.localization.construction.nat_trans_extension_hcomp -> CategoryTheory.Localization.Construction.natTransExtension_hcomp 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {G : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} (τ : Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G)), Eq.{succ (max u1 u4)} (Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G)) (CategoryTheory.NatTrans.hcomp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Functor.category.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) (CategoryTheory.Localization.Construction.natTransExtension.{u1, u2, u3, u4} C _inst_1 W D _inst_2 F G τ)) τ
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {W : CategoryTheory.MorphismProperty.{u3, u4} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] {F : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2} {G : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2} (τ : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u1 u4) u2) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G)), Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u1 u4) u2) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u1) u3) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u1) u3) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G)) (CategoryTheory.NatTrans.hcomp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Functor.category.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W)) (CategoryTheory.Localization.Construction.natTransExtension.{u4, u3, u1, u2} C _inst_1 W D _inst_2 F G τ)) τ
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_extension_hcomp CategoryTheory.Localization.Construction.natTransExtension_hcompₓ'. -/
@[simp]
-theorem natTransExtension_hcomp {F G : W.Localization ⥤ D} (τ : W.q ⋙ F ⟶ W.q ⋙ G) :
- 𝟙 W.q ◫ natTransExtension τ = τ := by
+theorem natTransExtension_hcomp {F G : W.Localization ⥤ D} (τ : W.Q ⋙ F ⟶ W.Q ⋙ G) :
+ 𝟙 W.Q ◫ natTransExtension τ = τ := by
ext X
simp only [nat_trans.hcomp_app, nat_trans.id_app, G.map_id, comp_id, nat_trans_extension_app,
nat_trans_extension.app_eq]
#align category_theory.localization.construction.nat_trans_extension_hcomp CategoryTheory.Localization.Construction.natTransExtension_hcomp
-theorem nat_trans_hcomp_injective {F G : W.Localization ⥤ D} {τ₁ τ₂ : F ⟶ G}
- (h : 𝟙 W.q ◫ τ₁ = 𝟙 W.q ◫ τ₂) : τ₁ = τ₂ := by
+/- warning: category_theory.localization.construction.nat_trans_hcomp_injective -> CategoryTheory.Localization.Construction.natTrans_hcomp_injective 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} {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {F : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {G : CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2} {τ₁ : Quiver.Hom.{succ (max u1 u4), max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2))) F G} {τ₂ : Quiver.Hom.{succ (max u1 u4), max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2))) F G}, (Eq.{succ (max u1 u4)} (Quiver.Hom.{succ (max u1 u4), max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max u2 u4 u1 u3} (CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u2, u4, u1, u3} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) G)) (CategoryTheory.NatTrans.hcomp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Functor.category.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) τ₁) (CategoryTheory.NatTrans.hcomp.{u2, max u1 u2, u4, u1, u1, u3} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 u2} (CategoryTheory.Functor.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W)) (CategoryTheory.Functor.category.{u2, max u1 u2, u1, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u1, u2} C _inst_1 W)) τ₂)) -> (Eq.{succ (max u1 u4)} (Quiver.Hom.{succ (max u1 u4), max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u1 u4, max (max u1 u2) u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2))) F G) τ₁ τ₂)
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {W : CategoryTheory.MorphismProperty.{u3, u4} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{u2, u1} D] {F : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2} {G : CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2} {τ₁ : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2))) F G} {τ₂ : Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2))) F G}, (Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u1 u4) u2) u3} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u1) u3) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u1) u3) u2} (CategoryTheory.Functor.{u3, u2, u4, u1} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u2, u4, u1} C _inst_1 D _inst_2))) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F) (CategoryTheory.Functor.comp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) G)) (CategoryTheory.NatTrans.hcomp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Functor.category.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W)) τ₁) (CategoryTheory.NatTrans.hcomp.{u3, max u4 u3, u2, u4, u4, u1} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2 (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W) F G (CategoryTheory.CategoryStruct.id.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u4 u3} (CategoryTheory.Functor.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W)) (CategoryTheory.Functor.category.{u3, max u4 u3, u4, u4} C _inst_1 (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W))) (CategoryTheory.MorphismProperty.Q.{u4, u3} C _inst_1 W)) τ₂)) -> (Eq.{max (succ u4) (succ u2)} (Quiver.Hom.{max (succ u4) (succ u2), max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u2, max (max (max u4 u3) u1) u2} (CategoryTheory.Functor.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u4 u3, u2, u4, u1} (CategoryTheory.MorphismProperty.Localization.{u4, u3} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u4, u3} C _inst_1 W) D _inst_2))) F G) τ₁ τ₂)
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.nat_trans_hcomp_injective CategoryTheory.Localization.Construction.natTrans_hcomp_injectiveₓ'. -/
+theorem natTrans_hcomp_injective {F G : W.Localization ⥤ D} {τ₁ τ₂ : F ⟶ G}
+ (h : 𝟙 W.Q ◫ τ₁ = 𝟙 W.Q ◫ τ₂) : τ₁ = τ₂ := by
ext X
have eq := (obj_equiv W).right_inv X
simp only [obj_equiv] at eq
rw [← Eq, ← nat_trans.id_hcomp_app, ← nat_trans.id_hcomp_app, h]
-#align category_theory.localization.construction.nat_trans_hcomp_injective CategoryTheory.Localization.Construction.nat_trans_hcomp_injective
+#align category_theory.localization.construction.nat_trans_hcomp_injective CategoryTheory.Localization.Construction.natTrans_hcomp_injective
variable (W D)
namespace WhiskeringLeftEquivalence
+#print CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.functor /-
/-- The functor `(W.localization ⥤ D) ⥤ (W.functors_inverting D)` induced by the
composition with `W.Q : C ⥤ W.localization`. -/
@[simps]
def functor : (W.Localization ⥤ D) ⥤ W.FunctorsInverting D :=
- FullSubcategory.lift _ ((whiskeringLeft _ _ D).obj W.q) fun F =>
- MorphismProperty.IsInvertedBy.of_comp W W.q W.q_inverts _
+ FullSubcategory.lift _ ((whiskeringLeft _ _ D).obj W.Q) fun F =>
+ MorphismProperty.IsInvertedBy.of_comp W W.Q W.Q_inverts _
#align category_theory.localization.construction.whiskering_left_equivalence.functor CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.functor
+-/
+#print CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.inverse /-
/-- The function `(W.functors_inverting D) ⥤ (W.localization ⥤ D)` induced by
`construction.lift`. -/
@[simps]
@@ -339,21 +426,23 @@ def inverse : W.FunctorsInverting D ⥤ W.Localization ⥤ D
obj G := lift G.obj G.property
map G₁ G₂ τ := natTransExtension (eqToHom (by rw [fac]) ≫ τ ≫ eqToHom (by rw [fac]))
map_id' G :=
- nat_trans_hcomp_injective
+ natTrans_hcomp_injective
(by
rw [nat_trans_extension_hcomp]
ext X
simpa only [nat_trans.comp_app, eq_to_hom_app, eq_to_hom_refl, comp_id, id_comp,
nat_trans.hcomp_id_app, nat_trans.id_app, Functor.map_id] )
map_comp' G₁ G₂ G₃ τ₁ τ₂ :=
- nat_trans_hcomp_injective
+ natTrans_hcomp_injective
(by
ext X
simpa only [nat_trans_extension_hcomp, nat_trans.comp_app, eq_to_hom_app, eq_to_hom_refl,
id_comp, comp_id, nat_trans.hcomp_app, nat_trans.id_app, Functor.map_id,
nat_trans_extension_app, nat_trans_extension.app_eq] )
#align category_theory.localization.construction.whiskering_left_equivalence.inverse CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.inverse
+-/
+#print CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.unitIso /-
/-- The unit isomorphism of the equivalence of categories `whiskering_left_equivalence W D`. -/
@[simps]
def unitIso : 𝟭 (W.Localization ⥤ D) ≅ functor W D ⋙ inverse W D :=
@@ -369,7 +458,9 @@ def unitIso : 𝟭 (W.Localization ⥤ D) ≅ functor W D ⋙ inverse W D :=
nat_trans.comp_app, eq_to_hom_app, eq_to_hom_refl, nat_trans_extension_app,
nat_trans_extension.app_eq, functor_map_app, id_comp])
#align category_theory.localization.construction.whiskering_left_equivalence.unit_iso CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.unitIso
+-/
+#print CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.counitIso /-
/-- The counit isomorphism of the equivalence of categories `whiskering_left_equivalence W D`. -/
@[simps]
def counitIso : inverse W D ⋙ functor W D ≅ 𝟭 (W.FunctorsInverting D) :=
@@ -383,9 +474,16 @@ def counitIso : inverse W D ⋙ functor W D ≅ 𝟭 (W.FunctorsInverting D) :=
ext X
apply nat_trans_extension.app_eq)
#align category_theory.localization.construction.whiskering_left_equivalence.counit_iso CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.counitIso
+-/
end WhiskeringLeftEquivalence
+/- warning: category_theory.localization.construction.whiskering_left_equivalence -> CategoryTheory.Localization.Construction.whiskeringLeftEquivalence 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) (D : Type.{u3}) [_inst_2 : CategoryTheory.Category.{u4, u3} D], CategoryTheory.Equivalence.{max u1 u4, max u1 u4, max (max u1 u2) u4 u1 u3, max u2 u4 u1 u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.Localization.category.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.MorphismProperty.FunctorsInverting.{u2, u1, u3, u4} C _inst_1 W D _inst_2) (CategoryTheory.MorphismProperty.FunctorsInverting.category.{u2, u3, u1, u4} C _inst_1 W D _inst_2)
+but is expected to have type
+ forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (W : CategoryTheory.MorphismProperty.{u2, u1} C _inst_1) (D : Type.{u3}) [_inst_2 : CategoryTheory.Category.{u4, u3} D], CategoryTheory.Equivalence.{max u1 u4, max u1 u4, max (max (max u3 u1) u4) u1 u2, max (max (max u1 u2) u4) u3} (CategoryTheory.Functor.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.MorphismProperty.FunctorsInverting.{u2, u1, u3, u4} C _inst_1 W D _inst_2) (CategoryTheory.Functor.category.{max u1 u2, u4, u1, u3} (CategoryTheory.MorphismProperty.Localization.{u1, u2} C _inst_1 W) (CategoryTheory.MorphismProperty.instCategoryLocalization.{u1, u2} C _inst_1 W) D _inst_2) (CategoryTheory.MorphismProperty.instCategoryFunctorsInverting.{u2, u1, u3, u4} C _inst_1 W D _inst_2)
+Case conversion may be inaccurate. Consider using '#align category_theory.localization.construction.whiskering_left_equivalence CategoryTheory.Localization.Construction.whiskeringLeftEquivalenceₓ'. -/
/-- The equivalence of categories `(W.localization ⥤ D) ≌ (W.functors_inverting D)`
induced by the composition with `W.Q : C ⥤ W.localization`. -/
def whiskeringLeftEquivalence : W.Localization ⥤ D ≌ W.FunctorsInverting D
mathlib commit https://github.com/leanprover-community/mathlib/commit/2196ab363eb097c008d4497125e0dde23fb36db2
@@ -147,7 +147,7 @@ include G hG
/-- The lifting of a functor to the path category of `loc_quiver W` -/
@[simps]
def liftToPathCategory : Paths (LocQuiver W) ⥤ D :=
- Quiv.lift
+ QuivCat.lift
{ obj := fun X => G.obj X.obj
map := fun X Y => by
rintro (f | ⟨g, hg⟩)
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
The type class MorphismProperty.HasTwoOutOfThreeProperty
is introduced. The structure StableUnderComposition
is also changed into a type class IsStableUnderComposition
.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -231,8 +231,8 @@ morphisms in the localized category if it contains the image of the
morphisms in the original category, the inverses of the morphisms
in `W` and if it is stable under composition -/
theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
- (hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.Q.map f))
- (hP₂ : ∀ ⦃X Y : C⦄ (w : X ⟶ Y) (hw : W w), P (winv w hw)) (hP₃ : P.StableUnderComposition) :
+ [P.IsStableUnderComposition] (hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.Q.map f))
+ (hP₂ : ∀ ⦃X Y : C⦄ (w : X ⟶ Y) (hw : W w), P (winv w hw)) :
P = ⊤ := by
funext X Y f
ext
@@ -251,7 +251,7 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
· simpa only [Functor.map_id] using hP₁ (𝟙 X₁.obj)
· let p' : X₁ ⟶X₂ := p
rw [show p'.cons g = p' ≫ Quiver.Hom.toPath g by rfl, G.map_comp]
- refine' hP₃ _ _ hp _
+ refine' P.comp_mem _ _ hp _
rcases g with (g | ⟨g, hg⟩)
· apply hP₁
· apply hP₂
@@ -262,10 +262,9 @@ morphisms in the localized category if it contains the image of the
morphisms in the original category, if is stable under composition
and if the property is stable by passing to inverses. -/
theorem morphismProperty_is_top' (P : MorphismProperty W.Localization)
- (hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.Q.map f))
- (hP₂ : ∀ ⦃X Y : W.Localization⦄ (e : X ≅ Y) (_ : P e.hom), P e.inv)
- (hP₃ : P.StableUnderComposition) : P = ⊤ :=
- morphismProperty_is_top P hP₁ (fun _ _ w _ => hP₂ _ (hP₁ w)) hP₃
+ [P.IsStableUnderComposition] (hP₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (W.Q.map f))
+ (hP₂ : ∀ ⦃X Y : W.Localization⦄ (e : X ≅ Y) (_ : P e.hom), P e.inv) : P = ⊤ :=
+ morphismProperty_is_top P hP₁ (fun _ _ w _ => hP₂ _ (hP₁ w))
#align category_theory.localization.construction.morphism_property_is_top' CategoryTheory.Localization.Construction.morphismProperty_is_top'
namespace NatTransExtension
@@ -301,7 +300,6 @@ def natTransExtension {F₁ F₂ : W.Localization ⥤ D} (τ : W.Q ⋙ F₁ ⟶
refine' morphismProperty_is_top'
(MorphismProperty.naturalityProperty (NatTransExtension.app τ))
_ (MorphismProperty.naturalityProperty.stableUnderInverse _)
- (MorphismProperty.naturalityProperty.stableUnderComposition _)
intros X Y f
dsimp
simpa only [NatTransExtension.app_eq] using τ.naturality f
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>
@@ -241,11 +241,11 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
apply MorphismProperty.top_apply
· intro
let G : _ ⥤ W.Localization := Quotient.functor _
- haveI : G.Full := Quotient.fullFunctor _
+ haveI : G.Full := Quotient.full_functor _
suffices ∀ (X₁ X₂ : Paths (LocQuiver W)) (f : X₁ ⟶ X₂), P (G.map f) by
rcases X with ⟨⟨X⟩⟩
rcases Y with ⟨⟨Y⟩⟩
- simpa only [Functor.image_preimage] using this _ _ (G.preimage f)
+ simpa only [Functor.map_preimage] using this _ _ (G.preimage f)
intros X₁ X₂ p
induction' p with X₂ X₃ p g hp
· simpa only [Functor.map_id] using hP₁ (𝟙 X₁.obj)
The file CategoryTheory.MorphismProperty
is split into five files Basic
, Composition
, Limits
, Concrete
, IsInvertedBy
.
@@ -3,7 +3,8 @@ 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 Mathlib.CategoryTheory.MorphismProperty
+import Mathlib.CategoryTheory.MorphismProperty.Composition
+import Mathlib.CategoryTheory.MorphismProperty.IsInvertedBy
import Mathlib.CategoryTheory.Category.Quiv
#align_import category_theory.localization.construction from "leanprover-community/mathlib"@"1a5e56f2166e4e9d0964c71f4273b1d39227678d"
@@ -51,7 +51,7 @@ namespace Localization
namespace Construction
--- porting note (#10927): removed @[nolint has_nonempty_instance]
+-- porting note (#5171): removed @[nolint has_nonempty_instance]
/-- If `W : MorphismProperty C`, `LocQuiver W` is a quiver with the same objects
as `C`, and whose morphisms are those in `C` and placeholders for formal
inverses of the morphisms in `W`. -/
@@ -96,7 +96,7 @@ namespace MorphismProperty
open Localization.Construction
--- porting note (#10927): removed @[nolint has_nonempty_instance]
+-- porting note (#5171): removed @[nolint has_nonempty_instance]
/-- The localized category obtained by formally inverting the morphisms
in `W : MorphismProperty C` -/
def Localization :=
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -240,7 +240,7 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
apply MorphismProperty.top_apply
· intro
let G : _ ⥤ W.Localization := Quotient.functor _
- haveI : Full G := Quotient.fullFunctor _
+ haveI : G.Full := Quotient.fullFunctor _
suffices ∀ (X₁ X₂ : Paths (LocQuiver W)) (f : X₁ ⟶ X₂), P (G.map f) by
rcases X with ⟨⟨X⟩⟩
rcases Y with ⟨⟨Y⟩⟩
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -168,7 +168,7 @@ def lift : W.Localization ⥤ D :=
Quotient.lift (relations W) (liftToPathCategory G hG)
(by
rintro ⟨X⟩ ⟨Y⟩ f₁ f₂ r
- --Porting note: rest of proof was `rcases r with ⟨⟩; tidy`
+ -- Porting note: rest of proof was `rcases r with ⟨⟩; tidy`
rcases r with (_|_|⟨f,hf⟩|⟨f,hf⟩)
· aesop_cat
· aesop_cat
@@ -51,7 +51,7 @@ namespace Localization
namespace Construction
--- porting note: removed @[nolint has_nonempty_instance]
+-- porting note (#10927): removed @[nolint has_nonempty_instance]
/-- If `W : MorphismProperty C`, `LocQuiver W` is a quiver with the same objects
as `C`, and whose morphisms are those in `C` and placeholders for formal
inverses of the morphisms in `W`. -/
@@ -96,7 +96,7 @@ namespace MorphismProperty
open Localization.Construction
--- porting note: removed @[nolint has_nonempty_instance]
+-- porting note (#10927): removed @[nolint has_nonempty_instance]
/-- The localized category obtained by formally inverting the morphisms
in `W : MorphismProperty C` -/
def Localization :=
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -190,23 +190,23 @@ theorem fac : W.Q ⋙ lift G hG = G :=
#align category_theory.localization.construction.fac CategoryTheory.Localization.Construction.fac
theorem uniq (G₁ G₂ : W.Localization ⥤ D) (h : W.Q ⋙ G₁ = W.Q ⋙ G₂) : G₁ = G₂ := by
- suffices h' : Quotient.functor _ ⋙ G₁ = Quotient.functor _ ⋙ G₂
- · refine' Functor.ext _ _
+ suffices h' : Quotient.functor _ ⋙ G₁ = Quotient.functor _ ⋙ G₂ by
+ refine' Functor.ext _ _
· rintro ⟨⟨X⟩⟩
apply Functor.congr_obj h
· rintro ⟨⟨X⟩⟩ ⟨⟨Y⟩⟩ ⟨f⟩
apply Functor.congr_hom h'
- · refine' Paths.ext_functor _ _
- · ext X
- cases X
- apply Functor.congr_obj h
- · rintro ⟨X⟩ ⟨Y⟩ (f | ⟨w, hw⟩)
- · simpa only using Functor.congr_hom h f
- · have hw : W.Q.map w = (wIso w hw).hom := rfl
- have hw' := Functor.congr_hom h w
- simp only [Functor.comp_map, hw] at hw'
- refine' Functor.congr_inv_of_congr_hom _ _ _ _ _ hw'
- all_goals apply Functor.congr_obj h
+ refine' Paths.ext_functor _ _
+ · ext X
+ cases X
+ apply Functor.congr_obj h
+ · rintro ⟨X⟩ ⟨Y⟩ (f | ⟨w, hw⟩)
+ · simpa only using Functor.congr_hom h f
+ · have hw : W.Q.map w = (wIso w hw).hom := rfl
+ have hw' := Functor.congr_hom h w
+ simp only [Functor.comp_map, hw] at hw'
+ refine' Functor.congr_inv_of_congr_hom _ _ _ _ _ hw'
+ all_goals apply Functor.congr_obj h
#align category_theory.localization.construction.uniq CategoryTheory.Localization.Construction.uniq
variable (W)
@@ -345,7 +345,7 @@ def inverse : W.FunctorsInverting D ⥤ W.Localization ⥤ D
ext X
simp only [NatTrans.comp_app, eqToHom_app, eqToHom_refl, comp_id, id_comp,
NatTrans.hcomp_id_app, NatTrans.id_app, Functor.map_id]
- rfl )
+ rfl)
map_comp τ₁ τ₂ :=
natTrans_hcomp_injective
(by
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joël Riou
-/
import Mathlib.CategoryTheory.MorphismProperty
-import Mathlib.CategoryTheory.Category.QuivCat
+import Mathlib.CategoryTheory.Category.Quiv
#align_import category_theory.localization.construction from "leanprover-community/mathlib"@"1a5e56f2166e4e9d0964c71f4273b1d39227678d"
@@ -152,7 +152,7 @@ variable {W} (G : C ⥤ D) (hG : W.IsInvertedBy G)
/-- The lifting of a functor to the path category of `LocQuiver W` -/
@[simps!]
def liftToPathCategory : Paths (LocQuiver W) ⥤ D :=
- QuivCat.lift
+ Quiv.lift
{ obj := fun X => G.obj X.obj
map := by
intros X Y
It is shown in this PR that when an equivalence relation on morphisms in a preadditive category is compatible with the addition, then the quotient category is preadditive.
@@ -185,7 +185,7 @@ theorem fac : W.Q ⋙ lift G hG = G :=
(by
intro X Y f
simp only [Functor.comp_map, eqToHom_refl, comp_id, id_comp]
- dsimp [MorphismProperty.Q, Quot.liftOn]
+ dsimp [MorphismProperty.Q, Quot.liftOn, Quotient.functor]
rw [composePath_toPath])
#align category_theory.localization.construction.fac CategoryTheory.Localization.Construction.fac
Without explicit universes, CategoryTheory.Localization.Construction.relations
(and everything downstream) was inferred as taking Category.{u,u} C
.
@@ -43,7 +43,9 @@ open CategoryTheory.Category
namespace CategoryTheory
-variable {C : Type*} [Category C] (W : MorphismProperty C) {D : Type*} [Category D]
+-- category universes first for convenience
+universe uC' uD' uC uD
+variable {C : Type uC} [Category.{uC'} C] (W : MorphismProperty C) {D : Type uD} [Category.{uD'} D]
namespace Localization
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -43,7 +43,7 @@ open CategoryTheory.Category
namespace CategoryTheory
-variable {C : Type _} [Category C] (W : MorphismProperty C) {D : Type _} [Category D]
+variable {C : Type*} [Category C] (W : MorphismProperty C) {D : Type*} [Category D]
namespace Localization
@@ -2,15 +2,12 @@
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.construction
-! leanprover-community/mathlib commit 1a5e56f2166e4e9d0964c71f4273b1d39227678d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.MorphismProperty
import Mathlib.CategoryTheory.Category.QuivCat
+#align_import category_theory.localization.construction from "leanprover-community/mathlib"@"1a5e56f2166e4e9d0964c71f4273b1d39227678d"
+
/-!
# Construction of the localized category
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.
@@ -158,8 +158,8 @@ def liftToPathCategory : Paths (LocQuiver W) ⥤ D :=
map := by
intros X Y
rintro (f | ⟨g, hg⟩)
- . exact G.map f
- . haveI := hG g hg
+ · exact G.map f
+ · haveI := hG g hg
exact inv (G.map g) }
#align category_theory.localization.construction.lift_to_path_category CategoryTheory.Localization.Construction.liftToPathCategory
@@ -171,8 +171,8 @@ def lift : W.Localization ⥤ D :=
rintro ⟨X⟩ ⟨Y⟩ f₁ f₂ r
--Porting note: rest of proof was `rcases r with ⟨⟩; tidy`
rcases r with (_|_|⟨f,hf⟩|⟨f,hf⟩)
- . aesop_cat
- . aesop_cat
+ · aesop_cat
+ · aesop_cat
all_goals
dsimp
haveI := hG f hf
@@ -237,7 +237,7 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
funext X Y f
ext
constructor
- . intro
+ · intro
apply MorphismProperty.top_apply
· intro
let G : _ ⥤ W.Localization := Quotient.functor _
@@ -249,12 +249,12 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
intros X₁ X₂ p
induction' p with X₂ X₃ p g hp
· simpa only [Functor.map_id] using hP₁ (𝟙 X₁.obj)
- . let p' : X₁ ⟶X₂ := p
+ · let p' : X₁ ⟶X₂ := p
rw [show p'.cons g = p' ≫ Quiver.Hom.toPath g by rfl, G.map_comp]
refine' hP₃ _ _ hp _
rcases g with (g | ⟨g, hg⟩)
- . apply hP₁
- . apply hP₂
+ · apply hP₁
+ · apply hP₂
#align category_theory.localization.construction.morphism_property_is_top CategoryTheory.Localization.Construction.morphismProperty_is_top
/-- A `MorphismProperty` in `W.Localization` is satisfied by all
@@ -382,8 +382,7 @@ def counitIso : inverse W D ⋙ functor W D ≅ 𝟭 (W.FunctorsInverting D) :=
ext
exact fac G hG
· rintro ⟨G₁, hG₁⟩ ⟨G₂, hG₂⟩ f
- apply NatTrans.ext
- ext1
+ ext
apply NatTransExtension.app_eq)
#align category_theory.localization.construction.whiskering_left_equivalence.counit_iso CategoryTheory.Localization.Construction.WhiskeringLeftEquivalence.counitIso
@@ -398,8 +397,7 @@ def whiskeringLeftEquivalence : W.Localization ⥤ D ≌ W.FunctorsInverting D
unitIso := WhiskeringLeftEquivalence.unitIso W D
counitIso := WhiskeringLeftEquivalence.counitIso W D
functor_unitIso_comp F := by
- apply NatTrans.ext
- ext1
+ ext
simp only [WhiskeringLeftEquivalence.unitIso_hom, eqToHom_app, eqToHom_refl,
WhiskeringLeftEquivalence.counitIso_hom, eqToHom_map, eqToHom_trans]
rfl
by
s! (#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 by
s".
@@ -242,9 +242,7 @@ theorem morphismProperty_is_top (P : MorphismProperty W.Localization)
· intro
let G : _ ⥤ W.Localization := Quotient.functor _
haveI : Full G := Quotient.fullFunctor _
- suffices
- ∀ (X₁ X₂ : Paths (LocQuiver W)) (f : X₁ ⟶ X₂), P (G.map f)
- by
+ suffices ∀ (X₁ X₂ : Paths (LocQuiver W)) (f : X₁ ⟶ X₂), P (G.map f) by
rcases X with ⟨⟨X⟩⟩
rcases Y with ⟨⟨Y⟩⟩
simpa only [Functor.image_preimage] using this _ _ (G.preimage f)
@@ -297,8 +295,7 @@ def natTransExtension {F₁ F₂ : W.Localization ⥤ D} (τ : W.Q ⋙ F₁ ⟶
where
app := NatTransExtension.app τ
naturality := by
- suffices MorphismProperty.naturalityProperty (NatTransExtension.app τ) = ⊤
- by
+ suffices MorphismProperty.naturalityProperty (NatTransExtension.app τ) = ⊤ by
intro X Y f
simpa only [← this] using MorphismProperty.top_apply f
refine' morphismProperty_is_top'
Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
The unported dependencies are