category_theory.sites.left_exact
⟷
Mathlib.CategoryTheory.Sites.LeftExact
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -214,7 +214,8 @@ instance (K : Type max v u) [SmallCategory K] [FinCategory K] [HasLimitsOfShape
rw [← category.assoc, ← nat_trans.comp_app, limit.lift_π]
rfl
-instance [HasFiniteLimits D] [PreservesFiniteLimits (forget D)] [ReflectsIsomorphisms (forget D)] :
+instance [HasFiniteLimits D] [PreservesFiniteLimits (forget D)]
+ [CategoryTheory.Functor.ReflectsIsomorphisms (forget D)] :
PreservesFiniteLimits (J.plusFunctor D) :=
by
apply preservesFiniteLimitsOfPreservesFiniteLimitsOfSize.{max v u}
@@ -227,7 +228,8 @@ instance (K : Type max v u) [SmallCategory K] [FinCategory K] [HasLimitsOfShape
PreservesLimitsOfShape K (J.sheafification D) :=
Limits.compPreservesLimitsOfShape _ _
-instance [HasFiniteLimits D] [PreservesFiniteLimits (forget D)] [ReflectsIsomorphisms (forget D)] :
+instance [HasFiniteLimits D] [PreservesFiniteLimits (forget D)]
+ [CategoryTheory.Functor.ReflectsIsomorphisms (forget D)] :
PreservesFiniteLimits (J.sheafification D) :=
Limits.compPreservesFiniteLimits _ _
@@ -243,7 +245,7 @@ variable [∀ X : C, PreservesColimitsOfShape (J.cover X)ᵒᵖ (forget D)]
variable [PreservesLimits (forget D)]
-variable [ReflectsIsomorphisms (forget D)]
+variable [CategoryTheory.Functor.ReflectsIsomorphisms (forget D)]
variable (K : Type max v u)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
-import CategoryTheory.Sites.Sheafification
+import CategoryTheory.Sites.ConcreteSheafification
import CategoryTheory.Sites.Limits
import CategoryTheory.Limits.FunctorCategory
import CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -249,14 +249,14 @@ variable (K : Type max v u)
variable [SmallCategory K] [FinCategory K] [HasLimitsOfShape K D]
-instance : PreservesLimitsOfShape K (presheafToSheaf J D) :=
+instance : PreservesLimitsOfShape K (plusPlusSheaf J D) :=
by
constructor; intro F; constructor; intro S hS
apply is_limit_of_reflects (Sheaf_to_presheaf J D)
haveI : reflects_limits_of_shape K (forget D) := reflects_limits_of_shape_of_reflects_isomorphisms
apply is_limit_of_preserves (J.sheafification D) hS
-instance [HasFiniteLimits D] : PreservesFiniteLimits (presheafToSheaf J D) :=
+instance [HasFiniteLimits D] : PreservesFiniteLimits (plusPlusSheaf J D) :=
by
apply preservesFiniteLimitsOfPreservesFiniteLimitsOfSize.{max v u}
intros; skip; infer_instance
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
-import Mathbin.CategoryTheory.Sites.Sheafification
-import Mathbin.CategoryTheory.Sites.Limits
-import Mathbin.CategoryTheory.Limits.FunctorCategory
-import Mathbin.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
+import CategoryTheory.Sites.Sheafification
+import CategoryTheory.Sites.Limits
+import CategoryTheory.Limits.FunctorCategory
+import CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
#align_import category_theory.sites.left_exact from "leanprover-community/mathlib"@"fe8d0ff42c3c24d789f491dc2622b6cac3d61564"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.sites.left_exact
-! leanprover-community/mathlib commit fe8d0ff42c3c24d789f491dc2622b6cac3d61564
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Sites.Sheafification
import Mathbin.CategoryTheory.Sites.Limits
import Mathbin.CategoryTheory.Limits.FunctorCategory
import Mathbin.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
+#align_import category_theory.sites.left_exact from "leanprover-community/mathlib"@"fe8d0ff42c3c24d789f491dc2622b6cac3d61564"
+
/-!
# Left exactness of sheafification
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -40,6 +40,7 @@ noncomputable section
namespace CategoryTheory.GrothendieckTopology
+#print CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation /-
/-- An auxiliary definition to be used in the proof of the fact that
`J.diagram_functor D X` preserves limits. -/
@[simps]
@@ -58,7 +59,9 @@ def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type m
dsimp [diagram_nat_trans]
simp only [multiequalizer.lift_ι, category.assoc] }
#align category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation
+-/
+#print CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj /-
/-- An auxiliary definition to be used in the proof of the fact that
`J.diagram_functor D X` preserves limits. -/
abbrev liftToDiagramLimitObj {X : C} {K : Type max v u} [SmallCategory K] [HasLimitsOfShape K D]
@@ -81,6 +84,7 @@ abbrev liftToDiagramLimitObj {X : C} {K : Type max v u} [SmallCategory K] [HasLi
limit.lift_π_assoc, category.assoc, category.assoc, multiequalizer.condition]
rfl)
#align category_theory.grothendieck_topology.lift_to_diagram_limit_obj CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj
+-/
instance (X : C) (K : Type max v u) [SmallCategory K] [HasLimitsOfShape K D] (F : K ⥤ Cᵒᵖ ⥤ D) :
PreservesLimit F (J.diagramFunctor D X) :=
@@ -122,6 +126,7 @@ variable [ConcreteCategory.{max v u} D]
variable [∀ X : C, PreservesColimitsOfShape (J.cover X)ᵒᵖ (forget D)]
+#print CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj /-
/-- An auxiliary definition to be used in the proof that `J.plus_functor D` commutes
with finite limits. -/
def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
@@ -150,7 +155,9 @@ def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
rfl)
limit.lift _ S ≫ (HasLimit.isoOfNatIso s.symm).Hom ≫ e.inv ≫ p.inv
#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj
+-/
+#print CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_fac /-
-- This lemma should not be used directly. Instead, one should use the fact that
-- `J.plus_functor D` preserves finite limits, along with the fact that
-- evaluation preserves limits.
@@ -181,6 +188,7 @@ theorem liftToPlusObjLimitObj_fac {K : Type max v u} [SmallCategory K] [FinCateg
erw [colimit.ι_desc]
rfl
#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj_fac CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_fac
+-/
instance (K : Type max v u) [SmallCategory K] [FinCategory K] [HasLimitsOfShape K D]
[PreservesLimitsOfShape K (forget D)] [ReflectsLimitsOfShape K (forget D)] :
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -254,7 +254,7 @@ instance : PreservesLimitsOfShape K (presheafToSheaf J D) :=
instance [HasFiniteLimits D] : PreservesFiniteLimits (presheafToSheaf J D) :=
by
apply preservesFiniteLimitsOfPreservesFiniteLimitsOfSize.{max v u}
- intros ; skip; infer_instance
+ intros; skip; infer_instance
end CategoryTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -40,9 +40,6 @@ noncomputable section
namespace CategoryTheory.GrothendieckTopology
-/- warning: category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation -> CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluationₓ'. -/
/-- An auxiliary definition to be used in the proof of the fact that
`J.diagram_functor D X` preserves limits. -/
@[simps]
@@ -62,9 +59,6 @@ def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type m
simp only [multiequalizer.lift_ι, category.assoc] }
#align category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation
-/- warning: category_theory.grothendieck_topology.lift_to_diagram_limit_obj -> CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_diagram_limit_obj CategoryTheory.GrothendieckTopology.liftToDiagramLimitObjₓ'. -/
/-- An auxiliary definition to be used in the proof of the fact that
`J.diagram_functor D X` preserves limits. -/
abbrev liftToDiagramLimitObj {X : C} {K : Type max v u} [SmallCategory K] [HasLimitsOfShape K D]
@@ -128,9 +122,6 @@ variable [ConcreteCategory.{max v u} D]
variable [∀ X : C, PreservesColimitsOfShape (J.cover X)ᵒᵖ (forget D)]
-/- warning: category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj -> CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObjₓ'. -/
/-- An auxiliary definition to be used in the proof that `J.plus_functor D` commutes
with finite limits. -/
def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
@@ -160,9 +151,6 @@ def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
limit.lift _ S ≫ (HasLimit.isoOfNatIso s.symm).Hom ≫ e.inv ≫ p.inv
#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj
-/- warning: category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj_fac -> CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_fac is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj_fac CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_facₓ'. -/
-- This lemma should not be used directly. Instead, one should use the fact that
-- `J.plus_functor D` preserves finite limits, along with the fact that
-- evaluation preserves limits.
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -41,10 +41,7 @@ noncomputable section
namespace CategoryTheory.GrothendieckTopology
/- warning: category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation -> CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{max u2 u3}} [_inst_1 : CategoryTheory.Category.{u2, max u2 u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, max u2 u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u2 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, max u2 u3} C _inst_1 X J D _inst_2 S P)] {X : C} {K : Type.{max u2 u3}} [_inst_4 : CategoryTheory.SmallCategory.{max u2 u3} K] {F : CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2)} {W : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X} (i : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u2, max u2 u3} C _inst_1 X J W), (CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) X) (CategoryTheory.Functor.obj.{max u2 u3, max (max u2 u3) u1, max u2 u3, max (max u2 u3) u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (Opposite.op.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) W))))) -> (CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u2, max u2 u3} C _inst_1 X J W i)))))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] {X : C} {K : Type.{max u2 u3}} [_inst_4 : CategoryTheory.SmallCategory.{max u3 u2} K] {F : CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)} {W : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X} (i : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u2, u3} C _inst_1 X J W), (CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) X) (Prefunctor.obj.{max (succ u3) (succ u2), max (max (succ u3) (succ u2)) (succ u1), max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max (max u3 u2) u1, max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2)) (Opposite.op.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) W))))) -> (CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (Prefunctor.obj.{succ u2, max (max (max (succ u1) (succ (max u3 u2))) (succ u2)) (succ u3), u3, max (max (max u1 u3 u2) u2) u3} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u1 u3 u2) u3) u2, max (max (max u1 u3 u2) u3) u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (max u1 u3 u2) u3) u2, max (max (max u1 u3 u2) u3) u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max (max u1 u3 u2) u3) u2, u3, max (max (max u1 u3 u2) u3) u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u2, u3} C _inst_1 X J W i)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluationₓ'. -/
/-- An auxiliary definition to be used in the proof of the fact that
`J.diagram_functor D X` preserves limits. -/
@@ -66,10 +63,7 @@ def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type m
#align category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation
/- warning: category_theory.grothendieck_topology.lift_to_diagram_limit_obj -> CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{max u2 u3}} [_inst_1 : CategoryTheory.Category.{u2, max u2 u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, max u2 u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u2 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, max u2 u3} C _inst_1 X J D _inst_2 S P)] {X : C} {K : Type.{max u2 u3}} [_inst_4 : CategoryTheory.SmallCategory.{max u2 u3} K] [_inst_5 : CategoryTheory.Limits.HasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2] {W : Opposite.{max 1 (succ (max u2 u3)) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)} (F : CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2)) (E : CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) X) (CategoryTheory.Functor.obj.{max u2 u3, max (max u2 u3) u1, max u2 u3, max (max u2 u3) u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) W)))), Quiver.Hom.{succ (max u2 u3), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, u1} D (CategoryTheory.Category.toCategoryStruct.{max u2 u3, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) X) (CategoryTheory.Functor.obj.{max u2 u3, max (max u2 u3) u1, max u2 u3, max (max u2 u3) u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) W))) E) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2 (CategoryTheory.GrothendieckTopology.diagram.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj._proof_3.{u3, u2, u1} C _inst_1 D _inst_2 K _inst_4 _inst_5 F)) X) W)
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] {X : C} {K : Type.{max u2 u3}} [_inst_4 : CategoryTheory.SmallCategory.{max u3 u2} K] [_inst_5 : CategoryTheory.Limits.HasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2] {W : Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)} (F : CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (E : CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) X) (Prefunctor.obj.{max (succ u3) (succ u2), max (max (succ u3) (succ u2)) (succ u1), max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max (max u3 u2) u1, max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2)) W)))), Quiver.Hom.{max (succ u3) (succ u2), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) X) (Prefunctor.obj.{max (succ u3) (succ u2), max (max (succ u3) (succ u2)) (succ u1), max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max (max u3 u2) u1, max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2)) W))) E) (Prefunctor.obj.{max (succ u3) (succ u2), max (succ u3) (succ u2), max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2 (CategoryTheory.GrothendieckTopology.diagram.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_4 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_4 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_5) F)) X)) W)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_diagram_limit_obj CategoryTheory.GrothendieckTopology.liftToDiagramLimitObjₓ'. -/
/-- An auxiliary definition to be used in the proof of the fact that
`J.diagram_functor D X` preserves limits. -/
@@ -135,10 +129,7 @@ variable [ConcreteCategory.{max v u} D]
variable [∀ X : C, PreservesColimitsOfShape (J.cover X)ᵒᵖ (forget D)]
/- warning: category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj -> CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{max u2 u3}} [_inst_1 : CategoryTheory.Category.{u2, max u2 u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, max u2 u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u2 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, max u2 u3} C _inst_1 X J D _inst_2 S P)] [_inst_4 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {K : Type.{max u2 u3}} [_inst_7 : CategoryTheory.SmallCategory.{max u2 u3} K] [_inst_8 : CategoryTheory.FinCategory.{max u2 u3} K _inst_7] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2] [_inst_10 : CategoryTheory.Limits.PreservesLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} K _inst_7 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_11 : CategoryTheory.Limits.ReflectsLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} K _inst_7 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] (F : CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2)) (X : C) (S : CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_4)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X))))), Quiver.Hom.{succ (max u2 u3), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, u1} D (CategoryTheory.Category.toCategoryStruct.{max u2 u3, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_4)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S) (CategoryTheory.Functor.obj.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_3.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_4.{u3, u2, u1} C _inst_1 D _inst_2 K _inst_7 _inst_9 F)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_5.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_4)) (Opposite.op.{succ (max u2 u3)} C X))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_4 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {K : Type.{max u2 u3}} [_inst_7 : CategoryTheory.SmallCategory.{max u3 u2} K] [_inst_8 : CategoryTheory.FinCategory.{max u3 u2} K _inst_7] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2] [_inst_10 : CategoryTheory.Limits.PreservesLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} K _inst_7 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_11 : CategoryTheory.Limits.ReflectsLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} K _inst_7 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] (F : CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (X : C) (S : CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X))))), Quiver.Hom.{max (succ u3) (succ u2), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S) (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F)) (fun (X : C) => _inst_4 X))) (Opposite.op.{succ u3} C X))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObjₓ'. -/
/-- An auxiliary definition to be used in the proof that `J.plus_functor D` commutes
with finite limits. -/
@@ -170,10 +161,7 @@ def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj
/- warning: category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj_fac -> CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_fac is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{max u2 u3}} [_inst_1 : CategoryTheory.Category.{u2, max u2 u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, max u2 u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u2 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, max u2 u3} C _inst_1 X J D _inst_2 S P)] [_inst_4 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {K : Type.{max u2 u3}} [_inst_7 : CategoryTheory.SmallCategory.{max u2 u3} K] [_inst_8 : CategoryTheory.FinCategory.{max u2 u3} K _inst_7] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2] [_inst_10 : CategoryTheory.Limits.PreservesLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} K _inst_7 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_11 : CategoryTheory.Limits.ReflectsLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} K _inst_7 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] (F : CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2)) (X : C) (S : CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X))))) (k : K), Eq.{succ (max u2 u3)} (Quiver.Hom.{succ (max u2 u3), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, u1} D (CategoryTheory.Category.toCategoryStruct.{max u2 u3, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S) (CategoryTheory.Functor.obj.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.plusMap._proof_3.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F k) (CategoryTheory.GrothendieckTopology.plusMap._proof_4.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (Opposite.op.{succ (max u2 u3)} C X))) (CategoryTheory.CategoryStruct.comp.{max u2 u3, u1} D (CategoryTheory.Category.toCategoryStruct.{max u2 u3, u1} D _inst_2) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S) (CategoryTheory.Functor.obj.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_3.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_4.{u3, u2, u1} C _inst_1 D _inst_2 K _inst_7 _inst_9 F)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_5.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (Opposite.op.{succ (max u2 u3)} C X)) (CategoryTheory.Functor.obj.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.plusMap._proof_3.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F k) (CategoryTheory.GrothendieckTopology.plusMap._proof_4.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (Opposite.op.{succ (max u2 u3)} C X)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X) _inst_5 (fun (X : C) => _inst_6 X) K _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 F X S) (CategoryTheory.NatTrans.app.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.plusMap._proof_1.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u2 u3, u2, max u2 u3, max u2 u3, max u2 u3, u1} D _inst_2 K _inst_7 (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) _inst_9) F)) (CategoryTheory.GrothendieckTopology.plusMap._proof_2.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.plusMap._proof_3.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F k) (CategoryTheory.GrothendieckTopology.plusMap._proof_4.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (CategoryTheory.GrothendieckTopology.plusMap.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u2 u3, u2, max u2 u3, max u2 u3, max u2 u3, u1} D _inst_2 K _inst_7 (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) _inst_9) F)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F k) (CategoryTheory.Limits.limit.π.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u2 u3, u2, max u2 u3, max u2 u3, max u2 u3, u1} D _inst_2 K _inst_7 (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) _inst_9) F) k)) (Opposite.op.{succ (max u2 u3)} C X))) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, u1, max (max u2 u3) u1} D _inst_2 (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.const.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S)) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) (CategoryTheory.Limits.Cone.π.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S) k)
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_4 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {K : Type.{max u2 u3}} [_inst_7 : CategoryTheory.SmallCategory.{max u3 u2} K] [_inst_8 : CategoryTheory.FinCategory.{max u3 u2} K _inst_7] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2] [_inst_10 : CategoryTheory.Limits.PreservesLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} K _inst_7 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_11 : CategoryTheory.Limits.ReflectsLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} K _inst_7 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] (F : CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (X : C) (S : CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X))))) (k : K), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S) (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max u3 u2, max (max u3 u2) u1} K (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} K (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} K _inst_7)) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F) k) (fun (X : C) => _inst_4 X))) (Opposite.op.{succ u3} C X))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S) (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F)) (fun (X : C) => _inst_4 X))) (Opposite.op.{succ u3} C X)) (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max u3 u2, max (max u3 u2) u1} K (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} K (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} K _inst_7)) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F) k) (fun (X : C) => _inst_4 X))) (Opposite.op.{succ u3} C X)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X) _inst_5 (fun (X : C) => _inst_6 X) K _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 F X S) (CategoryTheory.NatTrans.app.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F)) (fun (X : C) => _inst_4 X)) (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max u3 u2, max (max u3 u2) u1} K (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} K (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} K _inst_7)) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F) k) (fun (X : C) => _inst_4 X)) (CategoryTheory.GrothendieckTopology.plusMap.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F)) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max u3 u2, max (max u3 u2) u1} K (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} K (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} K _inst_7)) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F) k) (CategoryTheory.Limits.limit.π.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F) k)) (Opposite.op.{succ u3} C X))) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), u1, max (max u3 u2) u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, u1, max (max u3 u2) u1} D _inst_2 (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.const.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S)) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) (CategoryTheory.Limits.Cone.π.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S) k)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj_fac CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_facₓ'. -/
-- This lemma should not be used directly. Instead, one should use the fact that
-- `J.plus_functor D` preserves finite limits, along with the fact that
mathlib commit https://github.com/leanprover-community/mathlib/commit/738054fa93d43512da144ec45ce799d18fd44248
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
! This file was ported from Lean 3 source module category_theory.sites.left_exact
-! leanprover-community/mathlib commit 59382264386afdbaf1727e617f5fdda511992eb9
+! leanprover-community/mathlib commit fe8d0ff42c3c24d789f491dc2622b6cac3d61564
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
/-!
# Left exactness of sheafification
+
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
In this file we show that sheafification commutes with finite limits.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/39478763114722f0ec7613cb2f3f7701f9b86c8d
@@ -37,6 +37,12 @@ noncomputable section
namespace CategoryTheory.GrothendieckTopology
+/- warning: category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation -> CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{max u2 u3}} [_inst_1 : CategoryTheory.Category.{u2, max u2 u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, max u2 u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u2 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, max u2 u3} C _inst_1 X J D _inst_2 S P)] {X : C} {K : Type.{max u2 u3}} [_inst_4 : CategoryTheory.SmallCategory.{max u2 u3} K] {F : CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2)} {W : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X} (i : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u2, max u2 u3} C _inst_1 X J W), (CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) X) (CategoryTheory.Functor.obj.{max u2 u3, max (max u2 u3) u1, max u2 u3, max (max u2 u3) u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (Opposite.op.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) W))))) -> (CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.y.{u2, max u2 u3} C _inst_1 X J W i)))))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] {X : C} {K : Type.{max u2 u3}} [_inst_4 : CategoryTheory.SmallCategory.{max u3 u2} K] {F : CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)} {W : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X} (i : CategoryTheory.GrothendieckTopology.Cover.Arrow.{u2, u3} C _inst_1 X J W), (CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) X) (Prefunctor.obj.{max (succ u3) (succ u2), max (max (succ u3) (succ u2)) (succ u1), max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max (max u3 u2) u1, max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2)) (Opposite.op.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) W))))) -> (CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (Prefunctor.obj.{succ u2, max (max (max (succ u1) (succ (max u3 u2))) (succ u2)) (succ u3), u3, max (max (max u1 u3 u2) u2) u3} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u1 u3 u2) u3) u2, max (max (max u1 u3 u2) u3) u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (max u1 u3 u2) u3) u2, max (max (max u1 u3 u2) u3) u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max (max u1 u3 u2) u3) u2, u3, max (max (max u1 u3 u2) u3) u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C (CategoryTheory.GrothendieckTopology.Cover.Arrow.Y.{u2, u3} C _inst_1 X J W i)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluationₓ'. -/
/-- An auxiliary definition to be used in the proof of the fact that
`J.diagram_functor D X` preserves limits. -/
@[simps]
@@ -56,6 +62,12 @@ def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type m
simp only [multiequalizer.lift_ι, category.assoc] }
#align category_theory.grothendieck_topology.cone_comp_evaluation_of_cone_comp_diagram_functor_comp_evaluation CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation
+/- warning: category_theory.grothendieck_topology.lift_to_diagram_limit_obj -> CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{max u2 u3}} [_inst_1 : CategoryTheory.Category.{u2, max u2 u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, max u2 u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u2 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, max u2 u3} C _inst_1 X J D _inst_2 S P)] {X : C} {K : Type.{max u2 u3}} [_inst_4 : CategoryTheory.SmallCategory.{max u2 u3} K] [_inst_5 : CategoryTheory.Limits.HasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2] {W : Opposite.{max 1 (succ (max u2 u3)) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)} (F : CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2)) (E : CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) X) (CategoryTheory.Functor.obj.{max u2 u3, max (max u2 u3) u1, max u2 u3, max (max u2 u3) u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) W)))), Quiver.Hom.{succ (max u2 u3), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, u1} D (CategoryTheory.Category.toCategoryStruct.{max u2 u3, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) X) (CategoryTheory.Functor.obj.{max u2 u3, max (max u2 u3) u1, max u2 u3, max (max u2 u3) u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max (max u2 u3) u1, u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2) W))) E) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2 (CategoryTheory.GrothendieckTopology.diagram.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_4 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj._proof_3.{u3, u2, u1} C _inst_1 D _inst_2 K _inst_4 _inst_5 F)) X) W)
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] {X : C} {K : Type.{max u2 u3}} [_inst_4 : CategoryTheory.SmallCategory.{max u3 u2} K] [_inst_5 : CategoryTheory.Limits.HasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2] {W : Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)} (F : CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (E : CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) X) (Prefunctor.obj.{max (succ u3) (succ u2), max (max (succ u3) (succ u2)) (succ u1), max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max (max u3 u2) u1, max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2)) W)))), Quiver.Hom.{max (succ u3) (succ u2), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_4 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.diagramFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) X) (Prefunctor.obj.{max (succ u3) (succ u2), max (max (succ u3) (succ u2)) (succ u1), max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max (max u3 u2) u1, max u3 u2, max (max u3 u2) u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u1 u3 u2, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2)) W))) E) (Prefunctor.obj.{max (succ u3) (succ u2), max (succ u3) (succ u2), max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2 (CategoryTheory.GrothendieckTopology.diagram.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_4 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_4 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_4 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_5) F)) X)) W)
+Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_diagram_limit_obj CategoryTheory.GrothendieckTopology.liftToDiagramLimitObjₓ'. -/
/-- An auxiliary definition to be used in the proof of the fact that
`J.diagram_functor D X` preserves limits. -/
abbrev liftToDiagramLimitObj {X : C} {K : Type max v u} [SmallCategory K] [HasLimitsOfShape K D]
@@ -119,6 +131,12 @@ variable [ConcreteCategory.{max v u} D]
variable [∀ X : C, PreservesColimitsOfShape (J.cover X)ᵒᵖ (forget D)]
+/- warning: category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj -> CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{max u2 u3}} [_inst_1 : CategoryTheory.Category.{u2, max u2 u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, max u2 u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u2 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, max u2 u3} C _inst_1 X J D _inst_2 S P)] [_inst_4 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {K : Type.{max u2 u3}} [_inst_7 : CategoryTheory.SmallCategory.{max u2 u3} K] [_inst_8 : CategoryTheory.FinCategory.{max u2 u3} K _inst_7] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2] [_inst_10 : CategoryTheory.Limits.PreservesLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} K _inst_7 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_11 : CategoryTheory.Limits.ReflectsLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} K _inst_7 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] (F : CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2)) (X : C) (S : CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_4)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X))))), Quiver.Hom.{succ (max u2 u3), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, u1} D (CategoryTheory.Category.toCategoryStruct.{max u2 u3, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_4)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S) (CategoryTheory.Functor.obj.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_3.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_3) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_4.{u3, u2, u1} C _inst_1 D _inst_2 K _inst_7 _inst_9 F)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_5.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_4)) (Opposite.op.{succ (max u2 u3)} C X))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_4 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {K : Type.{max u2 u3}} [_inst_7 : CategoryTheory.SmallCategory.{max u3 u2} K] [_inst_8 : CategoryTheory.FinCategory.{max u3 u2} K _inst_7] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2] [_inst_10 : CategoryTheory.Limits.PreservesLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} K _inst_7 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_11 : CategoryTheory.Limits.ReflectsLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} K _inst_7 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] (F : CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (X : C) (S : CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X))))), Quiver.Hom.{max (succ u3) (succ u2), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S) (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F)) (fun (X : C) => _inst_4 X))) (Opposite.op.{succ u3} C X))
+Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObjₓ'. -/
/-- An auxiliary definition to be used in the proof that `J.plus_functor D` commutes
with finite limits. -/
def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
@@ -148,6 +166,12 @@ def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
limit.lift _ S ≫ (HasLimit.isoOfNatIso s.symm).Hom ≫ e.inv ≫ p.inv
#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj
+/- warning: category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj_fac -> CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_fac is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{max u2 u3}} [_inst_1 : CategoryTheory.Category.{u2, max u2 u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, max u2 u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u2 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, max u2 u3} C _inst_1 X J D _inst_2 S P)] [_inst_4 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) D _inst_2] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u2 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u2 u3, max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (Preorder.smallCategory.{max u2 u3} (CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, max u2 u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {K : Type.{max u2 u3}} [_inst_7 : CategoryTheory.SmallCategory.{max u2 u3} K] [_inst_8 : CategoryTheory.FinCategory.{max u2 u3} K _inst_7] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2] [_inst_10 : CategoryTheory.Limits.PreservesLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} K _inst_7 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_11 : CategoryTheory.Limits.ReflectsLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} K _inst_7 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] (F : CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2)) (X : C) (S : CategoryTheory.Limits.Cone.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X))))) (k : K), Eq.{succ (max u2 u3)} (Quiver.Hom.{succ (max u2 u3), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, u1} D (CategoryTheory.Category.toCategoryStruct.{max u2 u3, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S) (CategoryTheory.Functor.obj.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.plusMap._proof_3.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F k) (CategoryTheory.GrothendieckTopology.plusMap._proof_4.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (Opposite.op.{succ (max u2 u3)} C X))) (CategoryTheory.CategoryStruct.comp.{max u2 u3, u1} D (CategoryTheory.Category.toCategoryStruct.{max u2 u3, u1} D _inst_2) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S) (CategoryTheory.Functor.obj.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_3.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_4.{u3, u2, u1} C _inst_1 D _inst_2 K _inst_7 _inst_9 F)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj._proof_5.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (Opposite.op.{succ (max u2 u3)} C X)) (CategoryTheory.Functor.obj.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.plusMap._proof_3.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F k) (CategoryTheory.GrothendieckTopology.plusMap._proof_4.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (Opposite.op.{succ (max u2 u3)} C X)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X) _inst_5 (fun (X : C) => _inst_6 X) K _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 F X S) (CategoryTheory.NatTrans.app.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.plusMap._proof_1.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u2 u3, u2, max u2 u3, max u2 u3, max u2 u3, u1} D _inst_2 K _inst_7 (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) _inst_9) F)) (CategoryTheory.GrothendieckTopology.plusMap._proof_2.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (CategoryTheory.GrothendieckTopology.plusMap._proof_3.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F k) (CategoryTheory.GrothendieckTopology.plusMap._proof_4.{max u2 u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_4 X))) (CategoryTheory.GrothendieckTopology.plusMap.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X) (CategoryTheory.Limits.limit.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u2 u3, u2, max u2 u3, max u2 u3, max u2 u3, u1} D _inst_2 K _inst_7 (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) _inst_9) F)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F k) (CategoryTheory.Limits.limit.π.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u2 u3, u2, max u2 u3, max u2 u3, max u2 u3, u1} D _inst_2 K _inst_7 (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) _inst_9) F) k)) (Opposite.op.{succ (max u2 u3)} C X))) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, u1, max (max u2 u3) u1} D _inst_2 (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.const.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2) (CategoryTheory.Limits.Cone.pt.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S)) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) (CategoryTheory.Limits.Cone.π.{max u2 u3, max u2 u3, max u2 u3, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u1, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, max u2 u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, max u2 u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (CategoryTheory.Functor.obj.{u2, max (max u2 (max u2 u3) u1) u2 u3, max u2 u3, max (max u2 u3) (max u2 (max u2 u3) u1) u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u1, u1} (CategoryTheory.Functor.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u2 u3, max u2 u3, u1} (Opposite.{succ (max u2 u3)} C) (CategoryTheory.Category.opposite.{u2, max u2 u3} C _inst_1) D _inst_2) (Opposite.op.{succ (max u2 u3)} C X)))) S) k)
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_3 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_4 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {K : Type.{max u2 u3}} [_inst_7 : CategoryTheory.SmallCategory.{max u3 u2} K] [_inst_8 : CategoryTheory.FinCategory.{max u3 u2} K _inst_7] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2] [_inst_10 : CategoryTheory.Limits.PreservesLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} K _inst_7 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_11 : CategoryTheory.Limits.ReflectsLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} K _inst_7 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] (F : CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (X : C) (S : CategoryTheory.Limits.Cone.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X))))) (k : K), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S) (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max u3 u2, max (max u3 u2) u1} K (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} K (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} K _inst_7)) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F) k) (fun (X : C) => _inst_4 X))) (Opposite.op.{succ u3} C X))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S) (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F)) (fun (X : C) => _inst_4 X))) (Opposite.op.{succ u3} C X)) (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max u3 u2, max (max u3 u2) u1} K (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} K (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} K _inst_7)) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F) k) (fun (X : C) => _inst_4 X))) (Opposite.op.{succ u3} C X)) (CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X) _inst_5 (fun (X : C) => _inst_6 X) K _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 F X S) (CategoryTheory.NatTrans.app.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F)) (fun (X : C) => _inst_4 X)) (CategoryTheory.GrothendieckTopology.plusObj.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max u3 u2, max (max u3 u2) u1} K (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} K (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} K _inst_7)) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F) k) (fun (X : C) => _inst_4 X)) (CategoryTheory.GrothendieckTopology.plusMap.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X) (CategoryTheory.Limits.limit.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F)) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max u3 u2, max (max u3 u2) u1} K (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max u3 u2} K (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max u3 u2} K _inst_7)) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F) k) (CategoryTheory.Limits.limit.π.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) K _inst_7 (CategoryTheory.Limits.functorCategoryHasLimitsOfShape.{max u3 u2, u2, max u3 u2, u3, max u3 u2, u1} D _inst_2 K _inst_7 (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) _inst_9) F) k)) (Opposite.op.{succ u3} C X))) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), u1, max (max u3 u2) u1} D (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} D (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, u1, max (max u3 u2) u1} D _inst_2 (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2) (CategoryTheory.Functor.const.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2)) (CategoryTheory.Limits.Cone.pt.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S)) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) (CategoryTheory.Limits.Cone.π.{max u3 u2, max u3 u2, max u3 u2, u1} K _inst_7 D _inst_2 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, u1} K _inst_7 (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 F (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2 (CategoryTheory.GrothendieckTopology.plusFunctor.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_3 P X S) (fun (X : C) => _inst_4 X)) (Prefunctor.obj.{succ u2, max (max (succ u3) (succ u2)) (succ u1), u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, max (max u3 u2) u1, u3, max (max u3 u2) u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) D _inst_2) (CategoryTheory.evaluation.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (Opposite.op.{succ u3} C X)))) S) k)
+Case conversion may be inaccurate. Consider using '#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj_fac CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_facₓ'. -/
-- This lemma should not be used directly. Instead, one should use the fact that
-- `J.plus_functor D` preserves finite limits, along with the fact that
-- evaluation preserves limits.
mathlib commit https://github.com/leanprover-community/mathlib/commit/57e09a1296bfb4330ddf6624f1028ba186117d82
@@ -47,7 +47,7 @@ def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type m
where
pt := E.pt
π :=
- { app := fun k => E.π.app k ≫ multiequalizer.ι (W.index (F.obj k)) i
+ { app := fun k => E.π.app k ≫ Multiequalizer.ι (W.index (F.obj k)) i
naturality' := by
intro a b f
dsimp
@@ -62,7 +62,7 @@ abbrev liftToDiagramLimitObj {X : C} {K : Type max v u} [SmallCategory K] [HasLi
{W : (J.cover X)ᵒᵖ} (F : K ⥤ Cᵒᵖ ⥤ D)
(E : Cone (F ⋙ J.diagramFunctor D X ⋙ (evaluation (J.cover X)ᵒᵖ D).obj W)) :
E.pt ⟶ (J.diagram (limit F) X).obj W :=
- multiequalizer.lift _ _
+ Multiequalizer.lift _ _
(fun i =>
(isLimitOfPreserves ((evaluation _ _).obj (op i.y)) (limit.isLimit _)).lift
(coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation i E))
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -45,7 +45,7 @@ def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type m
(E : Cone (F ⋙ J.diagramFunctor D X ⋙ (evaluation (J.cover X)ᵒᵖ D).obj (op W))) :
Cone (F ⋙ (evaluation _ _).obj (op i.y))
where
- x := E.x
+ pt := E.pt
π :=
{ app := fun k => E.π.app k ≫ multiequalizer.ι (W.index (F.obj k)) i
naturality' := by
@@ -61,7 +61,7 @@ def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type m
abbrev liftToDiagramLimitObj {X : C} {K : Type max v u} [SmallCategory K] [HasLimitsOfShape K D]
{W : (J.cover X)ᵒᵖ} (F : K ⥤ Cᵒᵖ ⥤ D)
(E : Cone (F ⋙ J.diagramFunctor D X ⋙ (evaluation (J.cover X)ᵒᵖ D).obj W)) :
- E.x ⟶ (J.diagram (limit F) X).obj W :=
+ E.pt ⟶ (J.diagram (limit F) X).obj W :=
multiequalizer.lift _ _
(fun i =>
(isLimitOfPreserves ((evaluation _ _).obj (op i.y)) (limit.isLimit _)).lift
@@ -125,7 +125,7 @@ def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
[HasLimitsOfShape K D] [PreservesLimitsOfShape K (forget D)]
[ReflectsLimitsOfShape K (forget D)] (F : K ⥤ Cᵒᵖ ⥤ D) (X : C)
(S : Cone (F ⋙ J.plusFunctor D ⋙ (evaluation Cᵒᵖ D).obj (op X))) :
- S.x ⟶ (J.plusObj (limit F)).obj (op X) :=
+ S.pt ⟶ (J.plusObj (limit F)).obj (op X) :=
let e := colimitLimitIso (F ⋙ J.diagramFunctor D X)
let t : J.diagram (limit F) X ≅ limit (F ⋙ J.diagramFunctor D X) :=
(isLimitOfPreserves (J.diagramFunctor D X) (limit.isLimit _)).conePointUniqueUpToIso
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -84,7 +84,7 @@ instance (X : C) (K : Type max v u) [SmallCategory K] [HasLimitsOfShape K D] (F
preservesLimitOfEvaluation _ _ fun W =>
preservesLimitOfPreservesLimitCone (limit.isLimit _)
{ lift := fun E => liftToDiagramLimitObj F E
- fac' := by
+ fac := by
intro E k
dsimp [diagram_nat_trans]
ext1
@@ -93,7 +93,7 @@ instance (X : C) (K : Type max v u) [SmallCategory K] [HasLimitsOfShape K D] (F
dsimp [evaluate_combined_cones]
erw [category.comp_id, category.assoc, ← nat_trans.comp_app, limit.lift_π, limit.lift_π]
rfl
- uniq' := by
+ uniq := by
intro E m hm
ext
delta lift_to_diagram_limit_obj
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
We prove that sheaf categories have limits and colimits of the same size as the target category. Before, the universe levels were too restrictive. We change the construction of the colimit: it now uses the formal properties of sheafification instead of an explicit construction.
@@ -4,10 +4,9 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
import Mathlib.CategoryTheory.Sites.Limits
-import Mathlib.CategoryTheory.Limits.FunctorCategory
import Mathlib.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
import Mathlib.CategoryTheory.Adhesive
-import Mathlib.CategoryTheory.Sites.Sheafification
+import Mathlib.CategoryTheory.Sites.ConcreteSheafification
#align_import category_theory.sites.left_exact from "leanprover-community/mathlib"@"59382264386afdbaf1727e617f5fdda511992eb9"
@@ -21,8 +20,6 @@ open CategoryTheory Limits Opposite
universe w' w v u
--- Porting note: was `C : Type max v u` which made most instances non automatically applicable
--- it seems to me it is better to declare `C : Type u`: it works better, and it is more general
variable {C : Type u} [Category.{v} C] {J : GrothendieckTopology C}
variable {D : Type w} [Category.{max v u} D]
variable [∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)]
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -202,7 +202,7 @@ instance preservesLimitsOfShape_plusFunctor
rfl
instance preserveFiniteLimits_plusFunctor
- [HasFiniteLimits D] [PreservesFiniteLimits (forget D)] [ReflectsIsomorphisms (forget D)] :
+ [HasFiniteLimits D] [PreservesFiniteLimits (forget D)] [(forget D).ReflectsIsomorphisms] :
PreservesFiniteLimits (J.plusFunctor D) := by
apply preservesFiniteLimitsOfPreservesFiniteLimitsOfSize.{max v u}
intro K _ _
@@ -216,7 +216,7 @@ instance preservesLimitsOfShape_sheafification
Limits.compPreservesLimitsOfShape _ _
instance preservesFiniteLimits_sheafification
- [HasFiniteLimits D] [PreservesFiniteLimits (forget D)] [ReflectsIsomorphisms (forget D)] :
+ [HasFiniteLimits D] [PreservesFiniteLimits (forget D)] [(forget D).ReflectsIsomorphisms] :
PreservesFiniteLimits (J.sheafification D) :=
Limits.compPreservesFiniteLimits _ _
@@ -228,7 +228,7 @@ variable [∀ X : C, HasColimitsOfShape (J.Cover X)ᵒᵖ D]
variable [ConcreteCategory.{max v u} D]
variable [∀ X : C, PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)]
variable [PreservesLimits (forget D)]
-variable [ReflectsIsomorphisms (forget D)]
+variable [(forget D).ReflectsIsomorphisms]
variable (K : Type w')
variable [SmallCategory K] [FinCategory K] [HasLimitsOfShape K D]
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)
@@ -24,9 +24,7 @@ universe w' w v u
-- Porting note: was `C : Type max v u` which made most instances non automatically applicable
-- it seems to me it is better to declare `C : Type u`: it works better, and it is more general
variable {C : Type u} [Category.{v} C] {J : GrothendieckTopology C}
-
variable {D : Type w} [Category.{max v u} D]
-
variable [∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)]
noncomputable section
@@ -114,9 +112,7 @@ instance preservesLimits_diagramFunctor (X : C) [HasLimits D] :
apply preservesLimitsOfShape_diagramFunctor.{w, v, u}
variable [∀ X : C, HasColimitsOfShape (J.Cover X)ᵒᵖ D]
-
variable [ConcreteCategory.{max v u} D]
-
variable [∀ X : C, PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)]
/-- An auxiliary definition to be used in the proof that `J.plusFunctor D` commutes
@@ -229,17 +225,11 @@ end CategoryTheory.GrothendieckTopology
namespace CategoryTheory
variable [∀ X : C, HasColimitsOfShape (J.Cover X)ᵒᵖ D]
-
variable [ConcreteCategory.{max v u} D]
-
variable [∀ X : C, PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)]
-
variable [PreservesLimits (forget D)]
-
variable [ReflectsIsomorphisms (forget D)]
-
variable (K : Type w')
-
variable [SmallCategory K] [FinCategory K] [HasLimitsOfShape K D]
instance preservesLimitsOfShape_presheafToSheaf :
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -21,7 +21,7 @@ open CategoryTheory Limits Opposite
universe w' w v u
--- porting note: was `C : Type max v u` which made most instances non automatically applicable
+-- Porting note: was `C : Type max v u` which made most instances non automatically applicable
-- it seems to me it is better to declare `C : Type u`: it works better, and it is more general
variable {C : Type u} [Category.{v} C] {J : GrothendieckTopology C}
@@ -259,7 +259,7 @@ instance preservesLimitsOfShape_presheafToSheaf :
apply isLimitOfReflects (sheafToPresheaf J D)
have : ReflectsLimitsOfShape (AsSmall.{max v u} (FinCategory.AsType K)) (forget D) :=
reflectsLimitsOfShapeOfReflectsIsomorphisms
- -- porting note: the mathlib proof was by `apply is_limit_of_preserves (J.sheafification D) hS`
+ -- Porting note: the mathlib proof was by `apply is_limit_of_preserves (J.sheafification D) hS`
have : PreservesLimitsOfShape (AsSmall.{max v u} (FinCategory.AsType K))
(plusPlusSheaf J D ⋙ sheafToPresheaf J D) :=
preservesLimitsOfShapeOfNatIso (J.sheafificationIsoPresheafToSheafCompSheafToPreasheaf D)
@@ -7,6 +7,7 @@ import Mathlib.CategoryTheory.Sites.Limits
import Mathlib.CategoryTheory.Limits.FunctorCategory
import Mathlib.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
import Mathlib.CategoryTheory.Adhesive
+import Mathlib.CategoryTheory.Sites.Sheafification
#align_import category_theory.sites.left_exact from "leanprover-community/mathlib"@"59382264386afdbaf1727e617f5fdda511992eb9"
We define a typeclass HasSheafify
which says that presheaves on a site with values in some category can be sheafified, i.e. that the inclusion functor from sheaves to presheaves has a left exact left adjoint. We redefine presheafToSheaf
as an arbitrary choice of such a left adjoint.
@@ -3,7 +3,6 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
-import Mathlib.CategoryTheory.Sites.ConcreteSheafification
import Mathlib.CategoryTheory.Sites.Limits
import Mathlib.CategoryTheory.Limits.FunctorCategory
import Mathlib.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
@@ -243,7 +242,7 @@ variable (K : Type w')
variable [SmallCategory K] [FinCategory K] [HasLimitsOfShape K D]
instance preservesLimitsOfShape_presheafToSheaf :
- PreservesLimitsOfShape K (presheafToSheaf J D) := by
+ PreservesLimitsOfShape K (plusPlusSheaf J D) := by
let e := (FinCategory.equivAsType K).symm.trans (AsSmall.equiv.{0, 0, max v u})
haveI : HasLimitsOfShape (AsSmall.{max v u} (FinCategory.AsType K)) D :=
Limits.hasLimitsOfShape_of_equivalence e
@@ -261,22 +260,42 @@ instance preservesLimitsOfShape_presheafToSheaf :
reflectsLimitsOfShapeOfReflectsIsomorphisms
-- porting note: the mathlib proof was by `apply is_limit_of_preserves (J.sheafification D) hS`
have : PreservesLimitsOfShape (AsSmall.{max v u} (FinCategory.AsType K))
- (presheafToSheaf J D ⋙ sheafToPresheaf J D) :=
+ (plusPlusSheaf J D ⋙ sheafToPresheaf J D) :=
preservesLimitsOfShapeOfNatIso (J.sheafificationIsoPresheafToSheafCompSheafToPreasheaf D)
- exact isLimitOfPreserves (presheafToSheaf J D ⋙ sheafToPresheaf J D) hS
+ exact isLimitOfPreserves (plusPlusSheaf J D ⋙ sheafToPresheaf J D) hS
instance preservesfiniteLimits_presheafToSheaf [HasFiniteLimits D] :
- PreservesFiniteLimits (presheafToSheaf J D) := by
+ PreservesFiniteLimits (plusPlusSheaf J D) := by
apply preservesFiniteLimitsOfPreservesFiniteLimitsOfSize.{max v u}
intros
infer_instance
+instance : HasWeakSheafify J D := ⟨sheafToPresheafIsRightAdjoint J D⟩
+
+variable (J D)
+
+/-- `plusPlusSheaf` is isomorphic to an arbitrary choice of left adjoint. -/
+def plusPlusSheafIsoPresheafToSheaf : plusPlusSheaf J D ≅ presheafToSheaf J D :=
+ (plusPlusAdjunction J D).leftAdjointUniq (sheafificationAdjunction J D)
+
+/-- `plusPlusFunctor` is isomorphic to `sheafification`. -/
+def plusPlusFunctorIsoSheafification : J.sheafification D ≅ sheafification J D :=
+ isoWhiskerRight (plusPlusSheafIsoPresheafToSheaf J D) (sheafToPresheaf J D)
+
+/-- `plusPlus` is isomorphic to `sheafify`. -/
+def plusPlusIsoSheafify (P : Cᵒᵖ ⥤ D) : J.sheafify P ≅ sheafify J P :=
+ (sheafToPresheaf J D).mapIso ((plusPlusSheafIsoPresheafToSheaf J D).app P)
+
+instance [HasFiniteLimits D] : HasSheafify J D := HasSheafify.mk' J D (plusPlusAdjunction J D)
+
+variable {J D}
+
instance [FinitaryExtensive D] [HasFiniteCoproducts D] [HasPullbacks D] :
FinitaryExtensive (Sheaf J D) :=
- finitaryExtensive_of_reflective (sheafificationAdjunction _ _)
+ finitaryExtensive_of_reflective (plusPlusAdjunction _ _)
instance [Adhesive D] [HasPullbacks D] [HasPushouts D] : Adhesive (Sheaf J D) :=
- adhesive_of_reflective (sheafificationAdjunction _ _)
+ adhesive_of_reflective (plusPlusAdjunction _ _)
instance SheafOfTypes.finitary_extensive {C : Type u} [SmallCategory C]
(J : GrothendieckTopology C) : FinitaryExtensive (Sheaf J (Type u)) :=
@@ -3,7 +3,7 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
-import Mathlib.CategoryTheory.Sites.Sheafification
+import Mathlib.CategoryTheory.Sites.ConcreteSheafification
import Mathlib.CategoryTheory.Sites.Limits
import Mathlib.CategoryTheory.Limits.FunctorCategory
import Mathlib.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
Port of https://github.com/leanprover-community/mathlib/pull/17637
Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>
@@ -7,6 +7,7 @@ import Mathlib.CategoryTheory.Sites.Sheafification
import Mathlib.CategoryTheory.Sites.Limits
import Mathlib.CategoryTheory.Limits.FunctorCategory
import Mathlib.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
+import Mathlib.CategoryTheory.Adhesive
#align_import category_theory.sites.left_exact from "leanprover-community/mathlib"@"59382264386afdbaf1727e617f5fdda511992eb9"
@@ -18,7 +19,7 @@ In this file we show that sheafification commutes with finite limits.
open CategoryTheory Limits Opposite
-universe w v u
+universe w' w v u
-- porting note: was `C : Type max v u` which made most instances non automatically applicable
-- it seems to me it is better to declare `C : Type u`: it works better, and it is more general
@@ -237,17 +238,30 @@ variable [PreservesLimits (forget D)]
variable [ReflectsIsomorphisms (forget D)]
-variable (K : Type max v u)
+variable (K : Type w')
variable [SmallCategory K] [FinCategory K] [HasLimitsOfShape K D]
instance preservesLimitsOfShape_presheafToSheaf :
PreservesLimitsOfShape K (presheafToSheaf J D) := by
+ let e := (FinCategory.equivAsType K).symm.trans (AsSmall.equiv.{0, 0, max v u})
+ haveI : HasLimitsOfShape (AsSmall.{max v u} (FinCategory.AsType K)) D :=
+ Limits.hasLimitsOfShape_of_equivalence e
+ haveI : FinCategory (AsSmall.{max v u} (FinCategory.AsType K)) := by
+ constructor
+ · show Fintype (ULift _)
+ infer_instance
+ · intro j j'
+ show Fintype (ULift _)
+ infer_instance
+ refine @preservesLimitsOfShapeOfEquiv _ _ _ _ _ _ _ _ e.symm _ (show _ from ?_)
constructor; intro F; constructor; intro S hS
apply isLimitOfReflects (sheafToPresheaf J D)
- have : ReflectsLimitsOfShape K (forget D) := reflectsLimitsOfShapeOfReflectsIsomorphisms
+ have : ReflectsLimitsOfShape (AsSmall.{max v u} (FinCategory.AsType K)) (forget D) :=
+ reflectsLimitsOfShapeOfReflectsIsomorphisms
-- porting note: the mathlib proof was by `apply is_limit_of_preserves (J.sheafification D) hS`
- have : PreservesLimitsOfShape K (presheafToSheaf J D ⋙ sheafToPresheaf J D) :=
+ have : PreservesLimitsOfShape (AsSmall.{max v u} (FinCategory.AsType K))
+ (presheafToSheaf J D ⋙ sheafToPresheaf J D) :=
preservesLimitsOfShapeOfNatIso (J.sheafificationIsoPresheafToSheafCompSheafToPreasheaf D)
exact isLimitOfPreserves (presheafToSheaf J D ⋙ sheafToPresheaf J D) hS
@@ -257,4 +271,23 @@ instance preservesfiniteLimits_presheafToSheaf [HasFiniteLimits D] :
intros
infer_instance
+instance [FinitaryExtensive D] [HasFiniteCoproducts D] [HasPullbacks D] :
+ FinitaryExtensive (Sheaf J D) :=
+ finitaryExtensive_of_reflective (sheafificationAdjunction _ _)
+
+instance [Adhesive D] [HasPullbacks D] [HasPushouts D] : Adhesive (Sheaf J D) :=
+ adhesive_of_reflective (sheafificationAdjunction _ _)
+
+instance SheafOfTypes.finitary_extensive {C : Type u} [SmallCategory C]
+ (J : GrothendieckTopology C) : FinitaryExtensive (Sheaf J (Type u)) :=
+ inferInstance
+
+instance SheafOfTypes.adhesive {C : Type u} [SmallCategory C] (J : GrothendieckTopology C) :
+ Adhesive (Sheaf J (Type u)) :=
+ inferInstance
+
+instance SheafOfTypes.balanced {C : Type u} [SmallCategory C] (J : GrothendieckTopology C) :
+ Balanced (Sheaf J (Type u)) :=
+ inferInstance
+
end CategoryTheory
@@ -168,7 +168,7 @@ theorem liftToPlusObjLimitObj_fac {K : Type max v u} [SmallCategory K] [FinCateg
rw [limit.lift_π]
dsimp
rw [ι_colimitLimitIso_limit_π_assoc]
- simp_rw [← NatTrans.comp_app, ← Category.assoc, ← NatTrans.comp_app]
+ simp_rw [← Category.assoc, ← NatTrans.comp_app]
rw [limit.lift_π, Category.assoc]
congr 1
rw [← Iso.comp_inv_eq]
@@ -2,17 +2,14 @@
Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.sites.left_exact
-! leanprover-community/mathlib commit 59382264386afdbaf1727e617f5fdda511992eb9
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Sites.Sheafification
import Mathlib.CategoryTheory.Sites.Limits
import Mathlib.CategoryTheory.Limits.FunctorCategory
import Mathlib.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit
+#align_import category_theory.sites.left_exact from "leanprover-community/mathlib"@"59382264386afdbaf1727e617f5fdda511992eb9"
+
/-!
# Left exactness of sheafification
In this file we show that sheafification commutes with finite limits.
This PR is the result of running
find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;
which firstly replaces .
focusing dots with ·
and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.
@@ -188,7 +188,7 @@ instance preservesLimitsOfShape_plusFunctor
refine' ⟨fun S => liftToPlusObjLimitObj.{w, v, u} F X.unop S, _, _⟩
· intro S k
apply liftToPlusObjLimitObj_fac
- . intro S m hm
+ · intro S m hm
dsimp [liftToPlusObjLimitObj]
simp_rw [← Category.assoc, Iso.eq_comp_inv, ← Iso.comp_inv_eq]
refine' limit.hom_ext (fun k => _)
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -150,7 +150,6 @@ def liftToPlusObjLimitObj {K : Type max v u} [SmallCategory K] [FinCategory K]
limit.lift _ S ≫ (HasLimit.isoOfNatIso s.symm).hom ≫ e.inv ≫ p.inv
#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj
-set_option maxHeartbeats 800000 in
-- This lemma should not be used directly. Instead, one should use the fact that
-- `J.plusFunctor D` preserves finite limits, along with the fact that
-- evaluation preserves limits.
@@ -180,7 +179,6 @@ theorem liftToPlusObjLimitObj_fac {K : Type max v u} [SmallCategory K] [FinCateg
rfl
#align category_theory.grothendieck_topology.lift_to_plus_obj_limit_obj_fac CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_fac
-set_option maxHeartbeats 400000 in
instance preservesLimitsOfShape_plusFunctor
(K : Type max v u) [SmallCategory K] [FinCategory K] [HasLimitsOfShape K D]
[PreservesLimitsOfShape K (forget D)] [ReflectsLimitsOfShape K (forget D)] :
The unported dependencies are