category_theory.limits.kan_extension
⟷
Mathlib.CategoryTheory.Limits.KanExtension
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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
@@ -164,8 +164,8 @@ def adjunction [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
-/
#print CategoryTheory.Ran.reflective /-
-theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
- IsIso (adjunction D ι).counit :=
+theorem reflective [CategoryTheory.Functor.Full ι] [CategoryTheory.Functor.Faithful ι]
+ [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] : IsIso (adjunction D ι).counit :=
by
apply nat_iso.is_iso_of_is_iso_app _
intro F
@@ -317,8 +317,8 @@ def adjunction [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
-/
#print CategoryTheory.Lan.coreflective /-
-theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
- IsIso (adjunction D ι).Unit :=
+theorem coreflective [CategoryTheory.Functor.Full ι] [CategoryTheory.Functor.Faithful ι]
+ [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] : IsIso (adjunction D ι).Unit :=
by
apply nat_iso.is_iso_of_is_iso_app _
intro F
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Adam Topaz
-/
import CategoryTheory.Limits.Shapes.Terminal
-import CategoryTheory.Punit
-import CategoryTheory.StructuredArrow
+import CategoryTheory.PUnit
+import CategoryTheory.Comma.StructuredArrow
#align_import category_theory.limits.kan_extension from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Adam Topaz
-/
-import Mathbin.CategoryTheory.Limits.Shapes.Terminal
-import Mathbin.CategoryTheory.Punit
-import Mathbin.CategoryTheory.StructuredArrow
+import CategoryTheory.Limits.Shapes.Terminal
+import CategoryTheory.Punit
+import CategoryTheory.StructuredArrow
#align_import category_theory.limits.kan_extension from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.limits.kan_extension
-! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Limits.Shapes.Terminal
import Mathbin.CategoryTheory.Punit
import Mathbin.CategoryTheory.StructuredArrow
+#align_import category_theory.limits.kan_extension from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
+
/-!
# Kan extensions
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -132,7 +132,7 @@ def equiv (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] (G : L ⥤ D) :
tidy }
left_inv := by
intro x
- ext (k j)
+ ext k j
dsimp only [cone]
rw [limit.lift_π]
simp only [nat_trans.naturality_assoc, loc_map]
@@ -283,7 +283,7 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
tidy }
left_inv := by
intro x
- ext (k j)
+ ext k j
rw [colimit.ι_desc]
dsimp only [cocone]
rw [category.assoc, ← x.naturality j.hom, ← category.assoc]
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -106,6 +106,7 @@ def loc (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] : L ⥤ D
#align category_theory.Ran.loc CategoryTheory.Ran.loc
-/
+#print CategoryTheory.Ran.equiv /-
/-- An auxiliary definition used to define `Ran` and `Ran.adjunction`. -/
@[simps]
def equiv (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] (G : L ⥤ D) :
@@ -141,6 +142,7 @@ def equiv (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] (G : L ⥤ D) :
tidy
right_inv := by tidy
#align category_theory.Ran.equiv CategoryTheory.Ran.equiv
+-/
end Ran
@@ -156,12 +158,15 @@ namespace Ran
variable (D)
+#print CategoryTheory.Ran.adjunction /-
/-- The adjunction associated to `Ran`. -/
def adjunction [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
(whiskeringLeft _ _ D).obj ι ⊣ ran ι :=
Adjunction.adjunctionOfEquivRight _ _
#align category_theory.Ran.adjunction CategoryTheory.Ran.adjunction
+-/
+#print CategoryTheory.Ran.reflective /-
theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
IsIso (adjunction D ι).counit :=
by
@@ -176,6 +181,7 @@ theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredA
((limit.is_limit _).conePointUniqueUpToIso
(limit_of_diagram_initial structured_arrow.mk_id_initial _))
#align category_theory.Ran.reflective CategoryTheory.Ran.reflective
+-/
end Ran
@@ -241,6 +247,7 @@ def loc (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] : L ⥤ D
#align category_theory.Lan.loc CategoryTheory.Lan.loc
-/
+#print CategoryTheory.Lan.equiv /-
/-- An auxiliary definition used to define `Lan` and `Lan.adjunction`. -/
@[simps]
def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
@@ -288,6 +295,7 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
tidy
right_inv := by tidy
#align category_theory.Lan.equiv CategoryTheory.Lan.equiv
+-/
end Lan
@@ -303,12 +311,15 @@ namespace Lan
variable (D)
+#print CategoryTheory.Lan.adjunction /-
/-- The adjunction associated to `Lan`. -/
def adjunction [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
lan ι ⊣ (whiskeringLeft _ _ D).obj ι :=
Adjunction.adjunctionOfEquivLeft _ _
#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunction
+-/
+#print CategoryTheory.Lan.coreflective /-
theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
IsIso (adjunction D ι).Unit :=
by
@@ -323,6 +334,7 @@ theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (Costruc
((colimit.is_colimit _).coconePointUniqueUpToIso
(colimit_of_diagram_terminal costructured_arrow.mk_id_terminal _)).symm
#align category_theory.Lan.coreflective CategoryTheory.Lan.coreflective
+-/
end Lan
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -106,9 +106,6 @@ def loc (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] : L ⥤ D
#align category_theory.Ran.loc CategoryTheory.Ran.loc
-/
-/- warning: category_theory.Ran.equiv -> CategoryTheory.Ran.equiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran.equiv CategoryTheory.Ran.equivₓ'. -/
/-- An auxiliary definition used to define `Ran` and `Ran.adjunction`. -/
@[simps]
def equiv (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] (G : L ⥤ D) :
@@ -159,21 +156,12 @@ namespace Ran
variable (D)
-/- warning: category_theory.Ran.adjunction -> CategoryTheory.Ran.adjunction is a dubious translation:
-lean 3 declaration is
- forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : forall (X : L), CategoryTheory.Limits.HasLimitsOfShape.{max u2 u1, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) (CategoryTheory.StructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 X ι) D _inst_3], CategoryTheory.Adjunction.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Ran.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι _inst_4))
-but is expected to have type
- forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : forall (X : L), CategoryTheory.Limits.HasLimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) (CategoryTheory.instCategoryStructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) D _inst_3], CategoryTheory.Adjunction.{max u3 u5, max u3 u4, max (max (max u6 u3) u2) u5, max (max (max u6 u3) u1) u4} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_4 X))
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran.adjunction CategoryTheory.Ran.adjunctionₓ'. -/
/-- The adjunction associated to `Ran`. -/
def adjunction [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
(whiskeringLeft _ _ D).obj ι ⊣ ran ι :=
Adjunction.adjunctionOfEquivRight _ _
#align category_theory.Ran.adjunction CategoryTheory.Ran.adjunction
-/- warning: category_theory.Ran.reflective -> CategoryTheory.Ran.reflective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran.reflective CategoryTheory.Ran.reflectiveₓ'. -/
theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
IsIso (adjunction D ι).counit :=
by
@@ -253,9 +241,6 @@ def loc (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] : L ⥤ D
#align category_theory.Lan.loc CategoryTheory.Lan.loc
-/
-/- warning: category_theory.Lan.equiv -> CategoryTheory.Lan.equiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Lan.equiv CategoryTheory.Lan.equivₓ'. -/
/-- An auxiliary definition used to define `Lan` and `Lan.adjunction`. -/
@[simps]
def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
@@ -318,21 +303,12 @@ namespace Lan
variable (D)
-/- warning: category_theory.Lan.adjunction -> CategoryTheory.Lan.adjunction is a dubious translation:
-lean 3 declaration is
- forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : forall (X : L), CategoryTheory.Limits.HasColimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) (CategoryTheory.CostructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 ι X) D _inst_3], CategoryTheory.Adjunction.{max u4 u3, max u5 u3, max u1 u3 u4 u6, max u2 u3 u5 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Lan.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι _inst_4)) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι)
-but is expected to have type
- forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : forall (X : L), CategoryTheory.Limits.HasColimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) (CategoryTheory.instCategoryCostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) D _inst_3], CategoryTheory.Adjunction.{max u4 u3, max u5 u3, max (max (max u6 u4) u3) u1, max (max (max u6 u5) u3) u2} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_4 X)) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)
-Case conversion may be inaccurate. Consider using '#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunctionₓ'. -/
/-- The adjunction associated to `Lan`. -/
def adjunction [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
lan ι ⊣ (whiskeringLeft _ _ D).obj ι :=
Adjunction.adjunctionOfEquivLeft _ _
#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunction
-/- warning: category_theory.Lan.coreflective -> CategoryTheory.Lan.coreflective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Lan.coreflective CategoryTheory.Lan.coreflectiveₓ'. -/
theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
IsIso (adjunction D ι).Unit :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -278,9 +278,7 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
let yy : costructured_arrow ι (ι.obj y) := costructured_arrow.mk (𝟙 _)
let fff : xx ⟶ yy :=
costructured_arrow.hom_mk ff
- (by
- simp only [costructured_arrow.mk_hom_eq_self]
- erw [category.comp_id])
+ (by simp only [costructured_arrow.mk_hom_eq_self]; erw [category.comp_id])
erw [colimit.w (diagram ι F (ι.obj y)) fff]
congr
simp }
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -107,10 +107,7 @@ def loc (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] : L ⥤ D
-/
/- warning: category_theory.Ran.equiv -> CategoryTheory.Ran.equiv is a dubious translation:
-lean 3 declaration is
- forall {S : Type.{u4}} {L : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (F : CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) [_inst_4 : forall (x : L), CategoryTheory.Limits.HasLimit.{max u2 u1, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 x ι) (CategoryTheory.StructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 x ι) D _inst_3 (CategoryTheory.Ran.diagram.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F x)] (G : CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3), Equiv.{succ (max u5 u3), succ (max u4 u3)} (Quiver.Hom.{succ (max u5 u3), max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) G (CategoryTheory.Ran.loc.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F (CategoryTheory.Ran.equiv._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι F _inst_4))) (Quiver.Hom.{succ (max u4 u3), max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) (CategoryTheory.Functor.obj.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) G) F)
-but is expected to have type
- forall {S : Type.{u4}} {L : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (F : CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) [_inst_4 : forall (x : L), CategoryTheory.Limits.HasLimit.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 x ι) (CategoryTheory.instCategoryStructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 x ι) D _inst_3 (CategoryTheory.Ran.diagram.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F x)] (G : CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3), Equiv.{max (succ u5) (succ u3), max (succ u4) (succ u3)} (Quiver.Hom.{max (succ u5) (succ u3), max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) G (CategoryTheory.Ran.loc.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F (fun (x : L) => _inst_4 x))) (Quiver.Hom.{max (succ u4) (succ u3), max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) (Prefunctor.obj.{max (succ u5) (succ u3), max (succ u4) (succ u3), max (max (max u5 u2) u3) u6, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max (max (max u5 u2) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max (max (max u5 u2) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u5 u3, max u4 u3, max (max (max u5 u2) u3) u6, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u3) (succ u6)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u3 u6) u2) u5) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u3 u6) u2) u5) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u3 u6) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)) G) F)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Ran.equiv CategoryTheory.Ran.equivₓ'. -/
/-- An auxiliary definition used to define `Ran` and `Ran.adjunction`. -/
@[simps]
@@ -175,10 +172,7 @@ def adjunction [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
#align category_theory.Ran.adjunction CategoryTheory.Ran.adjunction
/- warning: category_theory.Ran.reflective -> CategoryTheory.Ran.reflective is a dubious translation:
-lean 3 declaration is
- forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : CategoryTheory.Full.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_5 : CategoryTheory.Faithful.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_6 : forall (X : L), CategoryTheory.Limits.HasLimitsOfShape.{max u2 u1, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) (CategoryTheory.StructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 X ι) D _inst_3], CategoryTheory.IsIso.{max (max u1 u3 u4 u6) u4 u3, max (max u4 u3) u1 u3 u4 u6} (CategoryTheory.Functor.{max u4 u3, max u4 u3, max u1 u3 u4 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u4 u3, max u4 u3, max u1 u3 u4 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.comp.{max u4 u3, max u5 u3, max u4 u3, max u1 u3 u4 u6, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Ran.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X))) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι)) (CategoryTheory.Functor.id.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Adjunction.counit.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Ran.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X))) (CategoryTheory.Ran.adjunction.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)))
-but is expected to have type
- forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : CategoryTheory.Full.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_5 : CategoryTheory.Faithful.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_6 : forall (X : L), CategoryTheory.Limits.HasLimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) (CategoryTheory.instCategoryStructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) D _inst_3], CategoryTheory.IsIso.{max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{max u4 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u4 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.comp.{max u4 u3, max u5 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)) (CategoryTheory.Functor.id.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Adjunction.counit.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)) (CategoryTheory.Ran.adjunction.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Ran.reflective CategoryTheory.Ran.reflectiveₓ'. -/
theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
IsIso (adjunction D ι).counit :=
@@ -260,10 +254,7 @@ def loc (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] : L ⥤ D
-/
/- warning: category_theory.Lan.equiv -> CategoryTheory.Lan.equiv is a dubious translation:
-lean 3 declaration is
- forall {S : Type.{u4}} {L : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (F : CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) [I : forall (x : L), CategoryTheory.Limits.HasColimit.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι x) (CategoryTheory.CostructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 ι x) D _inst_3 (CategoryTheory.Lan.diagram.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F x)] (G : CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3), Equiv.{succ (max u5 u3), succ (max u4 u3)} (Quiver.Hom.{succ (max u5 u3), max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) (CategoryTheory.Lan.loc.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F (CategoryTheory.Lan.equiv._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι F I)) G) (Quiver.Hom.{succ (max u4 u3), max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) F (CategoryTheory.Functor.obj.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) G))
-but is expected to have type
- forall {S : Type.{u4}} {L : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (F : CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) [I : forall (x : L), CategoryTheory.Limits.HasColimit.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι x) (CategoryTheory.instCategoryCostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι x) D _inst_3 (CategoryTheory.Lan.diagram.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F x)] (G : CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3), Equiv.{max (succ u5) (succ u3), max (succ u4) (succ u3)} (Quiver.Hom.{max (succ u5) (succ u3), max (max (max u6 u5) u3) u2} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) (CategoryTheory.Lan.loc.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F (fun (x : L) => I x)) G) (Quiver.Hom.{max (succ u4) (succ u3), max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) F (Prefunctor.obj.{max (succ u5) (succ u3), max (succ u4) (succ u3), max (max (max u5 u2) u3) u6, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max (max (max u5 u2) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max (max (max u5 u2) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u5 u3, max u4 u3, max (max (max u5 u2) u3) u6, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u3) (succ u6)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u3 u6) u2) u5) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u3 u6) u2) u5) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u3 u6) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)) G))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Lan.equiv CategoryTheory.Lan.equivₓ'. -/
/-- An auxiliary definition used to define `Lan` and `Lan.adjunction`. -/
@[simps]
@@ -342,10 +333,7 @@ def adjunction [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunction
/- warning: category_theory.Lan.coreflective -> CategoryTheory.Lan.coreflective is a dubious translation:
-lean 3 declaration is
- forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : CategoryTheory.Full.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_5 : CategoryTheory.Faithful.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_6 : forall (X : L), CategoryTheory.Limits.HasColimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) (CategoryTheory.CostructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 ι X) D _inst_3], CategoryTheory.IsIso.{max (max u1 u3 u4 u6) u4 u3, max (max u4 u3) u1 u3 u4 u6} (CategoryTheory.Functor.{max u4 u3, max u4 u3, max u1 u3 u4 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u4 u3, max u4 u3, max u1 u3 u4 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.id.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.comp.{max u4 u3, max u5 u3, max u4 u3, max u1 u3 u4 u6, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Lan.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X))) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι)) (CategoryTheory.Adjunction.unit.{max u4 u3, max u5 u3, max u1 u3 u4 u6, max u2 u3 u5 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Lan.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X))) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) (CategoryTheory.Lan.adjunction.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)))
-but is expected to have type
- forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : CategoryTheory.Full.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_5 : CategoryTheory.Faithful.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_6 : forall (X : L), CategoryTheory.Limits.HasColimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) (CategoryTheory.instCategoryCostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) D _inst_3], CategoryTheory.IsIso.{max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{max u4 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u4 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.id.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.comp.{max u4 u3, max u5 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)) (CategoryTheory.Adjunction.unit.{max u4 u3, max u5 u3, max (max (max u4 u6) u1) u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι) (CategoryTheory.Lan.adjunction.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Lan.coreflective CategoryTheory.Lan.coreflectiveₓ'. -/
theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
IsIso (adjunction D ι).Unit :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/2196ab363eb097c008d4497125e0dde23fb36db2
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Adam Topaz
! This file was ported from Lean 3 source module category_theory.limits.kan_extension
-! leanprover-community/mathlib commit c9c9fa15fec7ca18e9ec97306fb8764bfe988a7e
+! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.CategoryTheory.StructuredArrow
# Kan extensions
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines the right and left Kan extensions of a functor.
They exist under the assumption that the target category has enough limits
resp. colimits.
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -52,13 +52,16 @@ namespace Ran
attribute [local simp] structured_arrow.proj
+#print CategoryTheory.Ran.diagram /-
/-- The diagram indexed by `Ran.index ι x` used to define `Ran`. -/
abbrev diagram (F : S ⥤ D) (x : L) : StructuredArrow x ι ⥤ D :=
StructuredArrow.proj x ι ⋙ F
#align category_theory.Ran.diagram CategoryTheory.Ran.diagram
+-/
variable {ι}
+#print CategoryTheory.Ran.cone /-
/-- A cone over `Ran.diagram ι F x` used to define `Ran`. -/
@[simp]
def cone {F : S ⥤ D} {G : L ⥤ D} (x : L) (f : ι ⋙ G ⟶ F) : Cone (diagram ι F x)
@@ -74,9 +77,11 @@ def cone {F : S ⥤ D} {G : L ⥤ D} (x : L) (f : ι ⋙ G ⟶ F) : Cone (diagra
have := f.naturality
tidy }
#align category_theory.Ran.cone CategoryTheory.Ran.cone
+-/
variable (ι)
+#print CategoryTheory.Ran.loc /-
/-- An auxiliary definition used to define `Ran`. -/
@[simps]
def loc (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] : L ⥤ D
@@ -96,7 +101,14 @@ def loc (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] : L ⥤ D
congr 1
tidy
#align category_theory.Ran.loc CategoryTheory.Ran.loc
+-/
+/- warning: category_theory.Ran.equiv -> CategoryTheory.Ran.equiv is a dubious translation:
+lean 3 declaration is
+ forall {S : Type.{u4}} {L : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (F : CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) [_inst_4 : forall (x : L), CategoryTheory.Limits.HasLimit.{max u2 u1, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 x ι) (CategoryTheory.StructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 x ι) D _inst_3 (CategoryTheory.Ran.diagram.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F x)] (G : CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3), Equiv.{succ (max u5 u3), succ (max u4 u3)} (Quiver.Hom.{succ (max u5 u3), max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) G (CategoryTheory.Ran.loc.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F (CategoryTheory.Ran.equiv._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι F _inst_4))) (Quiver.Hom.{succ (max u4 u3), max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) (CategoryTheory.Functor.obj.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) G) F)
+but is expected to have type
+ forall {S : Type.{u4}} {L : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (F : CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) [_inst_4 : forall (x : L), CategoryTheory.Limits.HasLimit.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 x ι) (CategoryTheory.instCategoryStructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 x ι) D _inst_3 (CategoryTheory.Ran.diagram.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F x)] (G : CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3), Equiv.{max (succ u5) (succ u3), max (succ u4) (succ u3)} (Quiver.Hom.{max (succ u5) (succ u3), max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) G (CategoryTheory.Ran.loc.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F (fun (x : L) => _inst_4 x))) (Quiver.Hom.{max (succ u4) (succ u3), max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) (Prefunctor.obj.{max (succ u5) (succ u3), max (succ u4) (succ u3), max (max (max u5 u2) u3) u6, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max (max (max u5 u2) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max (max (max u5 u2) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u5 u3, max u4 u3, max (max (max u5 u2) u3) u6, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u3) (succ u6)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u3 u6) u2) u5) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u3 u6) u2) u5) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u3 u6) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)) G) F)
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran.equiv CategoryTheory.Ran.equivₓ'. -/
/-- An auxiliary definition used to define `Ran` and `Ran.adjunction`. -/
@[simps]
def equiv (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] (G : L ⥤ D) :
@@ -135,22 +147,36 @@ def equiv (F : S ⥤ D) [∀ x, HasLimit (diagram ι F x)] (G : L ⥤ D) :
end Ran
+#print CategoryTheory.ran /-
/-- The right Kan extension of a functor. -/
@[simps]
def ran [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] : (S ⥤ D) ⥤ L ⥤ D :=
Adjunction.rightAdjointOfEquiv (fun F G => (Ran.equiv ι G F).symm) (by tidy)
#align category_theory.Ran CategoryTheory.ran
+-/
namespace Ran
variable (D)
+/- warning: category_theory.Ran.adjunction -> CategoryTheory.Ran.adjunction is a dubious translation:
+lean 3 declaration is
+ forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : forall (X : L), CategoryTheory.Limits.HasLimitsOfShape.{max u2 u1, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) (CategoryTheory.StructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 X ι) D _inst_3], CategoryTheory.Adjunction.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Ran.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι _inst_4))
+but is expected to have type
+ forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : forall (X : L), CategoryTheory.Limits.HasLimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) (CategoryTheory.instCategoryStructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) D _inst_3], CategoryTheory.Adjunction.{max u3 u5, max u3 u4, max (max (max u6 u3) u2) u5, max (max (max u6 u3) u1) u4} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_4 X))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran.adjunction CategoryTheory.Ran.adjunctionₓ'. -/
/-- The adjunction associated to `Ran`. -/
def adjunction [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
(whiskeringLeft _ _ D).obj ι ⊣ ran ι :=
Adjunction.adjunctionOfEquivRight _ _
-#align category_theory.Ran.adjunction CategoryTheory.ran.adjunction
-
+#align category_theory.Ran.adjunction CategoryTheory.Ran.adjunction
+
+/- warning: category_theory.Ran.reflective -> CategoryTheory.Ran.reflective is a dubious translation:
+lean 3 declaration is
+ forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : CategoryTheory.Full.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_5 : CategoryTheory.Faithful.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_6 : forall (X : L), CategoryTheory.Limits.HasLimitsOfShape.{max u2 u1, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) (CategoryTheory.StructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 X ι) D _inst_3], CategoryTheory.IsIso.{max (max u1 u3 u4 u6) u4 u3, max (max u4 u3) u1 u3 u4 u6} (CategoryTheory.Functor.{max u4 u3, max u4 u3, max u1 u3 u4 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u4 u3, max u4 u3, max u1 u3 u4 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.comp.{max u4 u3, max u5 u3, max u4 u3, max u1 u3 u4 u6, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Ran.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X))) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι)) (CategoryTheory.Functor.id.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Adjunction.counit.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Ran.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X))) (CategoryTheory.Ran.adjunction.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)))
+but is expected to have type
+ forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : CategoryTheory.Full.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_5 : CategoryTheory.Faithful.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_6 : forall (X : L), CategoryTheory.Limits.HasLimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.StructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) (CategoryTheory.instCategoryStructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 X ι) D _inst_3], CategoryTheory.IsIso.{max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{max u4 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u4 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.comp.{max u4 u3, max u5 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)) (CategoryTheory.Functor.id.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Adjunction.counit.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι) (CategoryTheory.ran.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)) (CategoryTheory.Ran.adjunction.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran.reflective CategoryTheory.Ran.reflectiveₓ'. -/
theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
IsIso (adjunction D ι).counit :=
by
@@ -164,7 +190,7 @@ theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredA
is_iso.of_iso
((limit.is_limit _).conePointUniqueUpToIso
(limit_of_diagram_initial structured_arrow.mk_id_initial _))
-#align category_theory.Ran.reflective CategoryTheory.ran.reflective
+#align category_theory.Ran.reflective CategoryTheory.Ran.reflective
end Ran
@@ -172,13 +198,16 @@ namespace Lan
attribute [local simp] costructured_arrow.proj
+#print CategoryTheory.Lan.diagram /-
/-- The diagram indexed by `Ran.index ι x` used to define `Ran`. -/
abbrev diagram (F : S ⥤ D) (x : L) : CostructuredArrow ι x ⥤ D :=
CostructuredArrow.proj ι x ⋙ F
#align category_theory.Lan.diagram CategoryTheory.Lan.diagram
+-/
variable {ι}
+#print CategoryTheory.Lan.cocone /-
/-- A cocone over `Lan.diagram ι F x` used to define `Lan`. -/
@[simp]
def cocone {F : S ⥤ D} {G : L ⥤ D} (x : L) (f : F ⟶ ι ⋙ G) : Cocone (diagram ι F x)
@@ -193,9 +222,11 @@ def cocone {F : S ⥤ D} {G : L ⥤ D} (x : L) (f : F ⟶ ι ⋙ G) : Cocone (di
rw [← G.map_comp, ff]
tidy }
#align category_theory.Lan.cocone CategoryTheory.Lan.cocone
+-/
variable (ι)
+#print CategoryTheory.Lan.loc /-
/-- An auxiliary definition used to define `Lan`. -/
@[simps]
def loc (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] : L ⥤ D
@@ -223,7 +254,14 @@ def loc (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] : L ⥤ D
congr 1
simp
#align category_theory.Lan.loc CategoryTheory.Lan.loc
+-/
+/- warning: category_theory.Lan.equiv -> CategoryTheory.Lan.equiv is a dubious translation:
+lean 3 declaration is
+ forall {S : Type.{u4}} {L : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (F : CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) [I : forall (x : L), CategoryTheory.Limits.HasColimit.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι x) (CategoryTheory.CostructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 ι x) D _inst_3 (CategoryTheory.Lan.diagram.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F x)] (G : CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3), Equiv.{succ (max u5 u3), succ (max u4 u3)} (Quiver.Hom.{succ (max u5 u3), max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max u2 u3 u5 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) (CategoryTheory.Lan.loc.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F (CategoryTheory.Lan.equiv._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι F I)) G) (Quiver.Hom.{succ (max u4 u3), max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) F (CategoryTheory.Functor.obj.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) G))
+but is expected to have type
+ forall {S : Type.{u4}} {L : Type.{u5}} {D : Type.{u6}} [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (F : CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) [I : forall (x : L), CategoryTheory.Limits.HasColimit.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι x) (CategoryTheory.instCategoryCostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι x) D _inst_3 (CategoryTheory.Lan.diagram.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F x)] (G : CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3), Equiv.{max (succ u5) (succ u3), max (succ u4) (succ u3)} (Quiver.Hom.{max (succ u5) (succ u3), max (max (max u6 u5) u3) u2} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) (CategoryTheory.Lan.loc.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι F (fun (x : L) => I x)) G) (Quiver.Hom.{max (succ u4) (succ u3), max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) F (Prefunctor.obj.{max (succ u5) (succ u3), max (succ u4) (succ u3), max (max (max u5 u2) u3) u6, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u3, max (max (max u5 u2) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u5 u3, max (max (max u5 u2) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3))) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u5 u3, max u4 u3, max (max (max u5 u2) u3) u6, max (max (max u4 u1) u3) u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u3) (succ u6)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u3 u6) u2) u5) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u3 u6) u2) u5) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u3 u6) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u3 u6) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)) G))
+Case conversion may be inaccurate. Consider using '#align category_theory.Lan.equiv CategoryTheory.Lan.equivₓ'. -/
/-- An auxiliary definition used to define `Lan` and `Lan.adjunction`. -/
@[simps]
def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
@@ -276,22 +314,36 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
end Lan
+#print CategoryTheory.lan /-
/-- The left Kan extension of a functor. -/
@[simps]
def lan [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] : (S ⥤ D) ⥤ L ⥤ D :=
Adjunction.leftAdjointOfEquiv (fun F G => Lan.equiv ι F G) (by tidy)
#align category_theory.Lan CategoryTheory.lan
+-/
namespace Lan
variable (D)
+/- warning: category_theory.Lan.adjunction -> CategoryTheory.Lan.adjunction is a dubious translation:
+lean 3 declaration is
+ forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : forall (X : L), CategoryTheory.Limits.HasColimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) (CategoryTheory.CostructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 ι X) D _inst_3], CategoryTheory.Adjunction.{max u4 u3, max u5 u3, max u1 u3 u4 u6, max u2 u3 u5 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Lan.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι _inst_4)) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι)
+but is expected to have type
+ forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : forall (X : L), CategoryTheory.Limits.HasColimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) (CategoryTheory.instCategoryCostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) D _inst_3], CategoryTheory.Adjunction.{max u4 u3, max u5 u3, max (max (max u6 u4) u3) u1, max (max (max u6 u5) u3) u2} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_4 X)) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)
+Case conversion may be inaccurate. Consider using '#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunctionₓ'. -/
/-- The adjunction associated to `Lan`. -/
def adjunction [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
lan ι ⊣ (whiskeringLeft _ _ D).obj ι :=
Adjunction.adjunctionOfEquivLeft _ _
-#align category_theory.Lan.adjunction CategoryTheory.lan.adjunction
-
+#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunction
+
+/- warning: category_theory.Lan.coreflective -> CategoryTheory.Lan.coreflective is a dubious translation:
+lean 3 declaration is
+ forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : CategoryTheory.Full.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_5 : CategoryTheory.Faithful.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_6 : forall (X : L), CategoryTheory.Limits.HasColimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) (CategoryTheory.CostructuredArrow.category.{u2, u5, u4, u1} S _inst_1 L _inst_2 ι X) D _inst_3], CategoryTheory.IsIso.{max (max u1 u3 u4 u6) u4 u3, max (max u4 u3) u1 u3 u4 u6} (CategoryTheory.Functor.{max u4 u3, max u4 u3, max u1 u3 u4 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u4 u3, max u4 u3, max u1 u3 u4 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.id.{max u4 u3, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.comp.{max u4 u3, max u5 u3, max u4 u3, max u1 u3 u4 u6, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Lan.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X))) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι)) (CategoryTheory.Adjunction.unit.{max u4 u3, max u5 u3, max u1 u3 u4 u6, max u2 u3 u5 u6} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (CategoryTheory.Lan.adjunction._proof_1.{u4, u5, u6, u1, u2, u3} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X))) (CategoryTheory.Functor.obj.{max u4 u2, max (max u2 u3 u5 u6) u4 u3, max u1 u2 u4 u5, max (max u5 u3) (max u4 u3) (max u2 u3 u5 u6) u1 u3 u4 u6} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max u2 u3 u5 u6, max u1 u3 u4 u6} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3) ι) (CategoryTheory.Lan.adjunction.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)))
+but is expected to have type
+ forall {S : Type.{u4}} {L : Type.{u5}} (D : Type.{u6}) [_inst_1 : CategoryTheory.Category.{u1, u4} S] [_inst_2 : CategoryTheory.Category.{u2, u5} L] [_inst_3 : CategoryTheory.Category.{u3, u6} D] (ι : CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) [_inst_4 : CategoryTheory.Full.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_5 : CategoryTheory.Faithful.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι] [_inst_6 : forall (X : L), CategoryTheory.Limits.HasColimitsOfShape.{max u1 u2, max u4 u2, u3, u6} (CategoryTheory.CostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) (CategoryTheory.instCategoryCostructuredArrow.{u1, u2, u4, u5} S _inst_1 L _inst_2 ι X) D _inst_3], CategoryTheory.IsIso.{max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{max u4 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u4 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.id.{max u4 u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.comp.{max u4 u3, max u5 u3, max u4 u3, max (max (max u4 u6) u1) u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι)) (CategoryTheory.Adjunction.unit.{max u4 u3, max u5 u3, max (max (max u4 u6) u1) u3, max (max (max u5 u6) u2) u3} (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.lan.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)) (Prefunctor.obj.{max (succ u2) (succ u4), max (max (max (max (succ u6) (succ u3)) (succ u2)) (succ u5)) (succ u4), max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u4, max (max (max u2 u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2))) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u6 u3) u2) u5) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u4, max (max (max (max u6 u3) u2) u5) u4, max (max (max u2 u5) u1) u4, max (max (max (max (max u6 u3) u2) u5) u1) u4} (CategoryTheory.Functor.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.category.{u1, u2, u4, u5} S _inst_1 L _inst_2) (CategoryTheory.Functor.{max u5 u3, max u4 u3, max (max (max u6 u5) u3) u2, max (max (max u6 u4) u3) u1} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.Functor.category.{max u5 u3, max u4 u3, max (max (max u5 u6) u2) u3, max (max (max u4 u6) u1) u3} (CategoryTheory.Functor.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.category.{u2, u3, u5, u6} L _inst_2 D _inst_3) (CategoryTheory.Functor.{u1, u3, u4, u6} S _inst_1 D _inst_3) (CategoryTheory.Functor.category.{u1, u3, u4, u6} S _inst_1 D _inst_3)) (CategoryTheory.whiskeringLeft.{u4, u1, u5, u2, u6, u3} S _inst_1 L _inst_2 D _inst_3)) ι) (CategoryTheory.Lan.adjunction.{u1, u2, u3, u4, u5, u6} S L D _inst_1 _inst_2 _inst_3 ι (fun (X : L) => _inst_6 X)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Lan.coreflective CategoryTheory.Lan.coreflectiveₓ'. -/
theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
IsIso (adjunction D ι).Unit :=
by
@@ -305,7 +357,7 @@ theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (Costruc
is_iso.of_iso
((colimit.is_colimit _).coconePointUniqueUpToIso
(colimit_of_diagram_terminal costructured_arrow.mk_id_terminal _)).symm
-#align category_theory.Lan.coreflective CategoryTheory.lan.coreflective
+#align category_theory.Lan.coreflective CategoryTheory.Lan.coreflective
end Lan
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -63,7 +63,7 @@ variable {ι}
@[simp]
def cone {F : S ⥤ D} {G : L ⥤ D} (x : L) (f : ι ⋙ G ⟶ F) : Cone (diagram ι F x)
where
- x := G.obj x
+ pt := G.obj x
π :=
{ app := fun i => G.map i.Hom ≫ f.app i.right
naturality' := by
@@ -183,7 +183,7 @@ variable {ι}
@[simp]
def cocone {F : S ⥤ D} {G : L ⥤ D} (x : L) (f : F ⟶ ι ⋙ G) : Cocone (diagram ι F x)
where
- x := G.obj x
+ pt := G.obj x
ι :=
{ app := fun i => f.app i.left ≫ G.map i.Hom
naturality' := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -118,8 +118,8 @@ def equiv (F : S ⥤ D) [h : ∀ x, HasLimit (diagram ι F x)] (G : L ⥤ D) :
let t : StructuredArrow.mk (𝟙 (ι.obj x)) ⟶
(StructuredArrow.map (ι.map ff)).obj (StructuredArrow.mk (𝟙 (ι.obj y))) :=
StructuredArrow.homMk ff ?_
- convert (limit.w (diagram ι F (ι.obj x)) t).symm using 1
- simp }
+ · convert (limit.w (diagram ι F (ι.obj x)) t).symm using 1
+ · simp }
invFun f :=
{ app := fun x => limit.lift (diagram ι F x) (cone _ f)
naturality := by
@@ -95,13 +95,6 @@ def loc (F : S ⥤ D) [h : ∀ x, HasLimit (diagram ι F x)] : L ⥤ D
intro x y z f g
apply limit.hom_ext
intro j
- -- Porting note: The fact that we need to add these instances all over the place
- -- is certainly not ideal.
- haveI : HasLimit (StructuredArrow.map f ⋙ diagram ι F _) := h _
- haveI : HasLimit (StructuredArrow.map g ⋙ diagram ι F _) := h _
- haveI : HasLimit (StructuredArrow.map (f ≫ g) ⋙ diagram ι F _) := h _
- haveI : HasLimit (StructuredArrow.map g ⋙ StructuredArrow.map f ⋙ diagram ι F _) := h _
- haveI : HasLimit ((StructuredArrow.map g ⋙ StructuredArrow.map f) ⋙ diagram ι F _) := h _
erw [limit.pre_pre, limit.pre_π, limit.pre_π]
congr 1
aesop_cat
@@ -255,6 +248,8 @@ def loc (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] : L ⥤ D
let dd := diagram ι F z
-- Porting note: It seems that even Lean3 had some trouble with instances in this case.
-- I don't know why lean can't deduce the following three instances...
+ -- The corresponding `haveI` statements could be removed from `Ran.loc` and it just worked,
+ -- here it doesn't...
haveI : HasColimit (ff ⋙ gg ⋙ dd) := I _
haveI : HasColimit ((ff ⋙ gg) ⋙ dd) := I _
haveI : HasColimit (gg ⋙ dd) := I _
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -180,7 +180,7 @@ def adjunction [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
set_option linter.uppercaseLean3 false in
#align category_theory.Ran.adjunction CategoryTheory.Ran.adjunction
-theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
+theorem reflective [ι.Full] [ι.Faithful] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
IsIso (adjunction D ι).counit := by
suffices ∀ (X : S ⥤ D), IsIso (NatTrans.app (adjunction D ι).counit X) by
apply NatIso.isIso_of_isIso_app
@@ -354,7 +354,7 @@ def adjunction [∀ F : S ⥤ D, ∀ x, HasColimit (Lan.diagram ι F x)] :
set_option linter.uppercaseLean3 false in
#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunction
-theorem coreflective [Full ι] [Faithful ι] [∀ F : S ⥤ D, ∀ x, HasColimit (Lan.diagram ι F x)] :
+theorem coreflective [ι.Full] [ι.Faithful] [∀ F : S ⥤ D, ∀ x, HasColimit (Lan.diagram ι F x)] :
IsIso (adjunction D ι).unit := by
suffices ∀ (X : S ⥤ D), IsIso (NatTrans.app (adjunction D ι).unit X) by
apply NatIso.isIso_of_isIso_app
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -40,9 +40,7 @@ open Limits
universe v v₁ v₂ v₃ u₁ u₂ u₃
variable {S : Type u₁} {L : Type u₂} {D : Type u₃}
-
variable [Category.{v₁} S] [Category.{v₂} L] [Category.{v₃} D]
-
variable (ι : S ⥤ L)
namespace Ran
@@ -161,7 +161,7 @@ end Ran
@[simps!]
def ran [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] : (S ⥤ D) ⥤ L ⥤ D :=
Adjunction.rightAdjointOfEquiv (fun F G => (Ran.equiv ι G F).symm) (by {
- -- Porting note: was `tidy`
+ -- Porting note (#10936): was `tidy`
intros X' X Y f g
ext t
apply limit.hom_ext
@@ -285,14 +285,14 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
erw [colimit.ι_pre (diagram ι F (ι.obj y)) fff (CostructuredArrow.mk (𝟙 _))]
let xx : CostructuredArrow ι (ι.obj y) := CostructuredArrow.mk (ι.map ff)
let yy : CostructuredArrow ι (ι.obj y) := CostructuredArrow.mk (𝟙 _)
- let fff : xx ⟶ yy :=
+ let fff' : xx ⟶ yy :=
CostructuredArrow.homMk ff
(by
- simp only [CostructuredArrow.mk_hom_eq_self]
+ simp only [xx, CostructuredArrow.mk_hom_eq_self]
erw [Category.comp_id])
- erw [colimit.w (diagram ι F (ι.obj y)) fff]
+ erw [colimit.w (diagram ι F (ι.obj y)) fff']
congr
- simp }
+ simp [fff] }
invFun f :=
{ app := fun x => colimit.desc (diagram ι F x) (cocone _ f)
naturality := by
@@ -3,9 +3,9 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Adam Topaz
-/
+import Mathlib.CategoryTheory.Comma.StructuredArrow
import Mathlib.CategoryTheory.Limits.Shapes.Terminal
import Mathlib.CategoryTheory.PUnit
-import Mathlib.CategoryTheory.StructuredArrow
#align_import category_theory.limits.kan_extension from "leanprover-community/mathlib"@"c9c9fa15fec7ca18e9ec97306fb8764bfe988a7e"
@@ -334,7 +334,7 @@ end Lan
/-- The left Kan extension of a functor. -/
@[simps!]
-def lan [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] : (S ⥤ D) ⥤ L ⥤ D :=
+def lan [∀ F : S ⥤ D, ∀ x, HasColimit (Lan.diagram ι F x)] : (S ⥤ D) ⥤ L ⥤ D :=
Adjunction.leftAdjointOfEquiv (fun F G => Lan.equiv ι F G) (by {
intros X' X Y f g
ext
@@ -350,13 +350,13 @@ namespace Lan
variable (D)
/-- The adjunction associated to `Lan`. -/
-def adjunction [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
+def adjunction [∀ F : S ⥤ D, ∀ x, HasColimit (Lan.diagram ι F x)] :
lan ι ⊣ (whiskeringLeft _ _ D).obj ι :=
Adjunction.adjunctionOfEquivLeft _ _
set_option linter.uppercaseLean3 false in
#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunction
-theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
+theorem coreflective [Full ι] [Faithful ι] [∀ F : S ⥤ D, ∀ x, HasColimit (Lan.diagram ι F x)] :
IsIso (adjunction D ι).unit := by
suffices ∀ (X : S ⥤ D), IsIso (NatTrans.app (adjunction D ι).unit X) by
apply NatIso.isIso_of_isIso_app
@@ -324,6 +324,12 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
set_option linter.uppercaseLean3 false in
#align category_theory.Lan.equiv CategoryTheory.Lan.equiv
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF] CategoryTheory.Ran.equiv_symm_apply_app
+ CategoryTheory.Ran.equiv_apply_app
+ CategoryTheory.Lan.equiv_symm_apply_app
+ CategoryTheory.Lan.equiv_apply_app
+
end Lan
/-- The left Kan extension of a functor. -/
@@ -332,7 +338,10 @@ def lan [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] : (S ⥤ D) ⥤ L
Adjunction.leftAdjointOfEquiv (fun F G => Lan.equiv ι F G) (by {
intros X' X Y f g
ext
- simp [Lan.equiv] })
+ simp [Lan.equiv]
+ -- This used to be the end of the proof before leanprover/lean4#2644
+ erw [Equiv.coe_fn_mk, Equiv.coe_fn_mk]
+ simp })
set_option linter.uppercaseLean3 false in
#align category_theory.Lan CategoryTheory.lan
@@ -324,12 +324,6 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
set_option linter.uppercaseLean3 false in
#align category_theory.Lan.equiv CategoryTheory.Lan.equiv
--- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
-attribute [nolint simpNF] CategoryTheory.Ran.equiv_symm_apply_app
- CategoryTheory.Ran.equiv_apply_app
- CategoryTheory.Lan.equiv_symm_apply_app
- CategoryTheory.Lan.equiv_apply_app
-
end Lan
/-- The left Kan extension of a functor. -/
@@ -338,10 +332,7 @@ def lan [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] : (S ⥤ D) ⥤ L
Adjunction.leftAdjointOfEquiv (fun F G => Lan.equiv ι F G) (by {
intros X' X Y f g
ext
- simp [Lan.equiv]
- -- This used to be the end of the proof before leanprover/lean4#2644
- erw [Equiv.coe_fn_mk, Equiv.coe_fn_mk]
- simp })
+ simp [Lan.equiv] })
set_option linter.uppercaseLean3 false in
#align category_theory.Lan CategoryTheory.lan
@@ -324,6 +324,12 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
set_option linter.uppercaseLean3 false in
#align category_theory.Lan.equiv CategoryTheory.Lan.equiv
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF] CategoryTheory.Ran.equiv_symm_apply_app
+ CategoryTheory.Ran.equiv_apply_app
+ CategoryTheory.Lan.equiv_symm_apply_app
+ CategoryTheory.Lan.equiv_apply_app
+
end Lan
/-- The left Kan extension of a functor. -/
@@ -332,7 +338,10 @@ def lan [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] : (S ⥤ D) ⥤ L
Adjunction.leftAdjointOfEquiv (fun F G => Lan.equiv ι F G) (by {
intros X' X Y f g
ext
- simp [Lan.equiv] })
+ simp [Lan.equiv]
+ -- This used to be the end of the proof before leanprover/lean4#2644
+ erw [Equiv.coe_fn_mk, Equiv.coe_fn_mk]
+ simp })
set_option linter.uppercaseLean3 false in
#align category_theory.Lan CategoryTheory.lan
Many proofs use the "stream of consciousness" style from Lean 3, rather than have ... :=
or suffices ... from/by
.
This PR updates a fraction of these to the preferred Lean 4 style.
I think a good goal would be to delete the "deferred" versions of have
, suffices
, and let
at the bottom of Mathlib.Tactic.Have
(Anyone who would like to contribute more cleanup is welcome to push directly to this branch.)
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -184,11 +184,11 @@ set_option linter.uppercaseLean3 false in
theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
IsIso (adjunction D ι).counit := by
- suffices : ∀ (X : S ⥤ D), IsIso (NatTrans.app (adjunction D ι).counit X)
- · apply NatIso.isIso_of_isIso_app
+ suffices ∀ (X : S ⥤ D), IsIso (NatTrans.app (adjunction D ι).counit X) by
+ apply NatIso.isIso_of_isIso_app
intro F
- suffices : ∀ (X : S), IsIso (NatTrans.app (NatTrans.app (adjunction D ι).counit F) X)
- · apply NatIso.isIso_of_isIso_app
+ suffices ∀ (X : S), IsIso (NatTrans.app (NatTrans.app (adjunction D ι).counit F) X) by
+ apply NatIso.isIso_of_isIso_app
intro X
dsimp [adjunction, equiv]
simp only [Category.id_comp]
@@ -349,11 +349,11 @@ set_option linter.uppercaseLean3 false in
theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
IsIso (adjunction D ι).unit := by
- suffices : ∀ (X : S ⥤ D), IsIso (NatTrans.app (adjunction D ι).unit X)
- · apply NatIso.isIso_of_isIso_app
+ suffices ∀ (X : S ⥤ D), IsIso (NatTrans.app (adjunction D ι).unit X) by
+ apply NatIso.isIso_of_isIso_app
intro F
- suffices : ∀ (X : S), IsIso (NatTrans.app (NatTrans.app (adjunction D ι).unit F) X)
- · apply NatIso.isIso_of_isIso_app
+ suffices ∀ (X : S), IsIso (NatTrans.app (NatTrans.app (adjunction D ι).unit F) X) by
+ apply NatIso.isIso_of_isIso_app
intro X
dsimp [adjunction, equiv]
simp only [Category.comp_id]
@@ -2,16 +2,13 @@
Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.limits.kan_extension
-! leanprover-community/mathlib commit c9c9fa15fec7ca18e9ec97306fb8764bfe988a7e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Limits.Shapes.Terminal
import Mathlib.CategoryTheory.PUnit
import Mathlib.CategoryTheory.StructuredArrow
+#align_import category_theory.limits.kan_extension from "leanprover-community/mathlib"@"c9c9fa15fec7ca18e9ec97306fb8764bfe988a7e"
+
/-!
# Kan extensions
@@ -56,7 +56,7 @@ attribute [local simp] StructuredArrow.proj
abbrev diagram (F : S ⥤ D) (x : L) : StructuredArrow x ι ⥤ D :=
StructuredArrow.proj x ι ⋙ F
set_option linter.uppercaseLean3 false in
- #align category_theory.Ran.diagram CategoryTheory.Ran.diagram
+#align category_theory.Ran.diagram CategoryTheory.Ran.diagram
variable {ι}
@@ -76,7 +76,7 @@ def cone {F : S ⥤ D} {G : L ⥤ D} (x : L) (f : ι ⋙ G ⟶ F) : Cone (diagra
have := f.naturality
aesop_cat }
set_option linter.uppercaseLean3 false in
- #align category_theory.Ran.cone CategoryTheory.Ran.cone
+#align category_theory.Ran.cone CategoryTheory.Ran.cone
variable (ι)
@@ -111,7 +111,7 @@ def loc (F : S ⥤ D) [h : ∀ x, HasLimit (diagram ι F x)] : L ⥤ D
congr 1
aesop_cat
set_option linter.uppercaseLean3 false in
- #align category_theory.Ran.loc CategoryTheory.Ran.loc
+#align category_theory.Ran.loc CategoryTheory.Ran.loc
/-- An auxiliary definition used to define `Ran` and `Ran.adjunction`. -/
@[simps]
@@ -156,7 +156,7 @@ def equiv (F : S ⥤ D) [h : ∀ x, HasLimit (diagram ι F x)] (G : L ⥤ D) :
aesop_cat
right_inv := by aesop_cat
set_option linter.uppercaseLean3 false in
- #align category_theory.Ran.equiv CategoryTheory.Ran.equiv
+#align category_theory.Ran.equiv CategoryTheory.Ran.equiv
end Ran
@@ -172,7 +172,7 @@ def ran [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] : (S ⥤ D) ⥤ L ⥤
dsimp [Ran.equiv]
simp })
set_option linter.uppercaseLean3 false in
- #align category_theory.Ran CategoryTheory.ran
+#align category_theory.Ran CategoryTheory.ran
namespace Ran
@@ -183,7 +183,7 @@ def adjunction [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
(whiskeringLeft _ _ D).obj ι ⊣ ran ι :=
Adjunction.adjunctionOfEquivRight _ _
set_option linter.uppercaseLean3 false in
- #align category_theory.Ran.adjunction CategoryTheory.Ran.adjunction
+#align category_theory.Ran.adjunction CategoryTheory.Ran.adjunction
theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredArrow X ι) D] :
IsIso (adjunction D ι).counit := by
@@ -200,7 +200,7 @@ theorem reflective [Full ι] [Faithful ι] [∀ X, HasLimitsOfShape (StructuredA
((limit.isLimit _).conePointUniqueUpToIso
(limitOfDiagramInitial StructuredArrow.mkIdInitial _))
set_option linter.uppercaseLean3 false in
- #align category_theory.Ran.reflective CategoryTheory.Ran.reflective
+#align category_theory.Ran.reflective CategoryTheory.Ran.reflective
end Ran
@@ -212,7 +212,7 @@ attribute [local simp] CostructuredArrow.proj
abbrev diagram (F : S ⥤ D) (x : L) : CostructuredArrow ι x ⥤ D :=
CostructuredArrow.proj ι x ⋙ F
set_option linter.uppercaseLean3 false in
- #align category_theory.Lan.diagram CategoryTheory.Lan.diagram
+#align category_theory.Lan.diagram CategoryTheory.Lan.diagram
variable {ι}
@@ -230,7 +230,7 @@ def cocone {F : S ⥤ D} {G : L ⥤ D} (x : L) (f : F ⟶ ι ⋙ G) : Cocone (di
rw [← G.map_comp, ff]
aesop_cat }
set_option linter.uppercaseLean3 false in
- #align category_theory.Lan.cocone CategoryTheory.Lan.cocone
+#align category_theory.Lan.cocone CategoryTheory.Lan.cocone
variable (ι)
@@ -268,7 +268,7 @@ def loc (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] : L ⥤ D
congr 1
simp
set_option linter.uppercaseLean3 false in
- #align category_theory.Lan.loc CategoryTheory.Lan.loc
+#align category_theory.Lan.loc CategoryTheory.Lan.loc
/-- An auxiliary definition used to define `Lan` and `Lan.adjunction`. -/
@[simps]
@@ -325,7 +325,7 @@ def equiv (F : S ⥤ D) [I : ∀ x, HasColimit (diagram ι F x)] (G : L ⥤ D) :
rfl
right_inv := by aesop_cat
set_option linter.uppercaseLean3 false in
- #align category_theory.Lan.equiv CategoryTheory.Lan.equiv
+#align category_theory.Lan.equiv CategoryTheory.Lan.equiv
end Lan
@@ -337,7 +337,7 @@ def lan [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] : (S ⥤ D) ⥤ L
ext
simp [Lan.equiv] })
set_option linter.uppercaseLean3 false in
- #align category_theory.Lan CategoryTheory.lan
+#align category_theory.Lan CategoryTheory.lan
namespace Lan
@@ -348,7 +348,7 @@ def adjunction [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
lan ι ⊣ (whiskeringLeft _ _ D).obj ι :=
Adjunction.adjunctionOfEquivLeft _ _
set_option linter.uppercaseLean3 false in
- #align category_theory.Lan.adjunction CategoryTheory.Lan.adjunction
+#align category_theory.Lan.adjunction CategoryTheory.Lan.adjunction
theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (CostructuredArrow ι X) D] :
IsIso (adjunction D ι).unit := by
@@ -365,7 +365,7 @@ theorem coreflective [Full ι] [Faithful ι] [∀ X, HasColimitsOfShape (Costruc
((colimit.isColimit _).coconePointUniqueUpToIso
(colimitOfDiagramTerminal CostructuredArrow.mkIdTerminal _)).symm
set_option linter.uppercaseLean3 false in
- #align category_theory.Lan.coreflective CategoryTheory.Lan.coreflective
+#align category_theory.Lan.coreflective CategoryTheory.Lan.coreflective
end Lan
All dependencies are ported!