category_theory.sites.left_exactMathlib.CategoryTheory.Sites.LeftExact

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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)
 
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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"
 
Diff
@@ -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
 
Diff
@@ -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)] :
Diff
@@ -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
 
Diff
@@ -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.
Diff
@@ -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
Diff
@@ -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.
 -/
 
Diff
@@ -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.
Diff
@@ -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))
Diff
@@ -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
Diff
@@ -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

Changes in mathlib4

mathlib3
mathlib4
feat(CategoryTheory): more universe polymorphism for limits in sheaf categories (#12222)

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.

Diff
@@ -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)]
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

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

Diff
@@ -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]
 
chore(*): remove empty lines between variable statements (#11418)

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)
Diff
@@ -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 :
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -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)
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -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"
 
refactor(CategoryTheory/Sites): sheafification as an abstract left adjoint (#9012)

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.

Diff
@@ -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)) :=
refactor(CategoryTheory/Sites): rename Sheafification file (#9042)

In preparation for #9012, to make the diff nicer.

Diff
@@ -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
feat(CategoryTheory/Adhesive): Sheaf toposes are finitary extensive and adhesive (#7721)

Port of https://github.com/leanprover-community/mathlib/pull/17637

Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>

Diff
@@ -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
chore: remove unused simps (#6632)

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -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]
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,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.
chore: fix focusing dots (#5708)

This PR is the result of running

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

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

Diff
@@ -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 => _)
chore: reenable eta, bump to nightly 2023-05-16 (#3414)

Now that leanprover/lean4#2210 has been merged, this PR:

  • removes all the set_option synthInstance.etaExperiment true commands (and some etaExperiment% term elaborators)
  • removes many but not quite all set_option maxHeartbeats commands
  • makes various other changes required to cope with leanprover/lean4#2210.

Co-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>

Diff
@@ -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)] :
feat: port CategoryTheory.Sites.LeftExact (#3706)

Dependencies 3 + 336

337 files ported (99.1%)
136611 lines ported (99.2%)
Show graph

The unported dependencies are