category_theory.sites.cover_liftingMathlib.CategoryTheory.Sites.CoverLifting

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -199,7 +199,7 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
   apply get_section_is_unique
   intro V' fV' hV'
   have eq : Z.hom = Y.hom ≫ (G.map f.right.unop).op := by convert f.w; erw [category.id_comp]
-  rw [Eq] at hV' 
+  rw [Eq] at hV'
   convert get_section_is_amalgamation hu ℱ hS hx Y (fV' ≫ f.right.unop) _ using 1
   · tidy
   ·
Diff
@@ -71,31 +71,32 @@ variable (J : GrothendieckTopology C) (K : GrothendieckTopology D)
 
 variable {L : GrothendieckTopology E}
 
-#print CategoryTheory.CoverLifting /-
+#print CategoryTheory.Functor.IsCocontinuous /-
 /-- A functor `G : (C, J) ⥤ (D, K)` between sites is called to have the cover-lifting property
 if for all covering sieves `R` in `D`, `R.pullback G` is a covering sieve in `C`.
 -/
 @[nolint has_nonempty_instance]
-structure CoverLifting (G : C ⥤ D) : Prop where
+structure CategoryTheory.Functor.IsCocontinuous (G : C ⥤ D) : Prop where
   cover_lift : ∀ {U : C} {S : Sieve (G.obj U)} (hS : S ∈ K (G.obj U)), S.functorPullback G ∈ J U
-#align category_theory.cover_lifting CategoryTheory.CoverLifting
+#align category_theory.cover_lifting CategoryTheory.Functor.IsCocontinuous
 -/
 
-#print CategoryTheory.idCoverLifting /-
+#print CategoryTheory.isCocontinuous_id /-
 /-- The identity functor on a site is cover-lifting. -/
-theorem idCoverLifting : CoverLifting J J (𝟭 _) :=
+theorem isCocontinuous_id : CategoryTheory.Functor.IsCocontinuous J J (𝟭 _) :=
   ⟨fun _ _ h => by simpa using h⟩
-#align category_theory.id_cover_lifting CategoryTheory.idCoverLifting
+#align category_theory.id_cover_lifting CategoryTheory.isCocontinuous_id
 -/
 
 variable {J K}
 
-#print CategoryTheory.compCoverLifting /-
+#print CategoryTheory.isCocontinuous_comp /-
 /-- The composition of two cover-lifting functors are cover-lifting -/
-theorem compCoverLifting {F : C ⥤ D} (hu : CoverLifting J K F) {G : D ⥤ E}
-    (hv : CoverLifting K L G) : CoverLifting J L (F ⋙ G) :=
+theorem isCocontinuous_comp {F : C ⥤ D} (hu : CategoryTheory.Functor.IsCocontinuous J K F)
+    {G : D ⥤ E} (hv : CategoryTheory.Functor.IsCocontinuous K L G) :
+    CategoryTheory.Functor.IsCocontinuous J L (F ⋙ G) :=
   ⟨fun _ S h => hu.cover_lift (hv.cover_lift h)⟩
-#align category_theory.comp_cover_lifting CategoryTheory.compCoverLifting
+#align category_theory.comp_cover_lifting CategoryTheory.isCocontinuous_comp
 -/
 
 end CoverLifting
@@ -130,7 +131,7 @@ variable {J : GrothendieckTopology C} {K : GrothendieckTopology D}
 
 namespace RanIsSheafOfCoverLifting
 
-variable {G : C ⥤ D} (hu : CoverLifting J K G) (ℱ : Sheaf J A)
+variable {G : C ⥤ D} (hu : CategoryTheory.Functor.IsCocontinuous J K G) (ℱ : Sheaf J A)
 
 variable {X : A} {U : D} (S : Sieve U) (hS : S ∈ K U)
 
@@ -142,26 +143,26 @@ variable (x : S.arrows.FamilyOfElements ((ran G.op).obj ℱ.val ⋙ coyoneda.obj
 
 variable (hx : x.Compatible)
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily /-
 /-- The family of morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` defined on `{ Y' ⊆ Y : G(Y') ⊆ U ∈ S}`. -/
 def pulledbackFamily (Y : StructuredArrow (op U) G.op) :=
   ((x.pullback Y.Hom.unop).functorPullback G).compPresheafMap
     (show _ ⟶ _ from whiskerRight ((Ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X)))
-#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily
+#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily_apply /-
 @[simp]
 theorem pulledbackFamily_apply (Y : StructuredArrow (op U) G.op) {W} {f : W ⟶ _} (Hf) :
     pulledbackFamily ℱ S x Y f Hf =
       x (G.map f ≫ Y.Hom.unop) Hf ≫ ((Ran.adjunction A G.op).counit.app ℱ.val).app (op W) :=
   rfl
-#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply
+#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily_apply
 -/
 
 variable {x} {S}
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.getSection /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.getSection /-
 /-- Given a `G(Y) ⊆ U`, we can find a unique section `X ⟶ ℱ(Y)` that agrees with `x`. -/
 def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   by
@@ -169,17 +170,17 @@ def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   have S' := K.pullback_stable Y.hom.unop hS
   have hs' := ((hx.pullback Y.3.unop).functorPullback G).compPresheafMap hom_sh
   exact (ℱ.2 X _ (hu.cover_lift S')).amalgamate _ hs'
-#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSection
+#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfIsCocontinuous.getSection
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_isAmalgamation /-
 theorem getSection_isAmalgamation (Y : StructuredArrow (op U) G.op) :
     (pulledbackFamily ℱ S x Y).IsAmalgamation (getSection hu ℱ hS hx Y) :=
   IsSheafFor.isAmalgamation _ _
-#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation
+#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_isAmalgamation
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_is_unique /-
 theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
     (H : (pulledbackFamily ℱ S x Y).IsAmalgamation y) : y = getSection hu ℱ hS hx Y :=
   by
@@ -187,10 +188,10 @@ theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
   · exact H
   · apply get_section_is_amalgamation
   · exact ℱ.2 X _ (hu.cover_lift (K.pullback_stable Y.hom.unop hS))
-#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique
+#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_is_unique
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_commute /-
 @[simp]
 theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
     getSection hu ℱ hS hx Y ≫ ℱ.val.map f.right = getSection hu ℱ hS hx Z :=
@@ -206,34 +207,34 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
       category.assoc]
   · change S (G.map _ ≫ Y.hom.unop)
     simpa only [functor.map_comp, category.assoc] using hV'
-#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute
+#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_commute
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone /-
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
   { pt
     π :=
       { app := fun Y => getSection hu ℱ hS hx Y
         naturality' := fun Y Z f => by tidy } }
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone_π_app /-
 @[simp]
 theorem gluedLimitCone_π_app (W) : (gluedLimitCone hu ℱ hS hx).π.app W = getSection hu ℱ hS hx W :=
   rfl
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone_π_app
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.gluedSection /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection /-
 /-- The section obtained by passing `glued_limit_cone` into `category_theory.limits.limit.lift`. -/
 def gluedSection : X ⟶ ((ran G.op).obj ℱ.val).obj (op U) :=
   limit.lift _ (gluedLimitCone hu ℱ hS hx)
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSection
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.helper /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.helper /-
 /--
 A helper lemma for the following two lemmas. Basically stating that if the section `y : X ⟶ 𝒢(V)`
 coincides with `x` on `G(V')` for all `G(V') ⊆ V ∈ S`, then `X ⟶ 𝒢(V) ⟶ ℱ(W)` is indeed the
@@ -266,10 +267,10 @@ theorem helper {V} (f : V ⟶ U) (y : X ⟶ ((ran G.op).obj ℱ.val).obj (op V))
   rw [structured_arrow.map_mk]
   erw [category.comp_id]
   simp only [Quiver.Hom.unop_op, functor.op_map, Quiver.Hom.op_unop]
-#align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helper
+#align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfIsCocontinuous.helper
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_isAmalgamation /-
 /-- Verify that the `glued_section` is an amalgamation of `x`. -/
 theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS hx) :=
   by
@@ -282,10 +283,10 @@ theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS h
   intro V' fV' hV'
   convert hx fV' (𝟙 _) hV hV' (by rw [category.id_comp])
   simp only [op_id, functor_to_types.map_id_apply]
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_isAmalgamation
 -/
 
-#print CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique /-
+#print CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_is_unique /-
 /-- Verify that the amalgamation is indeed unique. -/
 theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection hu ℱ hS hx :=
   by
@@ -297,19 +298,19 @@ theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection
   · intro V' fV' hV'
     convert hy fV' (by simpa only [category.comp_id] using hV')
     erw [category.comp_id]
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_is_unique
 -/
 
 end RanIsSheafOfCoverLifting
 
-#print CategoryTheory.ran_isSheaf_of_coverLifting /-
+#print CategoryTheory.ran_isSheaf_of_isCocontinuous /-
 /-- If `G` is cover_lifting, then `Ran G.op` pushes sheaves to sheaves.
 
 This result is basically https://stacks.math.columbia.edu/tag/00XK,
 but without the condition that `C` or `D` has pullbacks.
 -/
-theorem ran_isSheaf_of_coverLifting {G : C ⥤ D} (hG : CoverLifting J K G) (ℱ : Sheaf J A) :
-    Presheaf.IsSheaf K ((ran G.op).obj ℱ.val) :=
+theorem ran_isSheaf_of_isCocontinuous {G : C ⥤ D} (hG : CategoryTheory.Functor.IsCocontinuous J K G)
+    (ℱ : Sheaf J A) : Presheaf.IsSheaf K ((ran G.op).obj ℱ.val) :=
   by
   intro X U S hS x hx
   constructor; swap
@@ -317,31 +318,32 @@ theorem ran_isSheaf_of_coverLifting {G : C ⥤ D} (hG : CoverLifting J K G) (ℱ
   constructor
   · apply Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation
   · apply Ran_is_sheaf_of_cover_lifting.glued_section_is_unique
-#align category_theory.Ran_is_sheaf_of_cover_lifting CategoryTheory.ran_isSheaf_of_coverLifting
+#align category_theory.Ran_is_sheaf_of_cover_lifting CategoryTheory.ran_isSheaf_of_isCocontinuous
 -/
 
 variable (A)
 
-#print CategoryTheory.Sites.copullback /-
+#print CategoryTheory.Functor.sheafPushforwardCocontinuous /-
 /-- A cover-lifting functor induces a morphism of sites in the same direction as the functor. -/
-def Sites.copullback {G : C ⥤ D} (hG : CoverLifting J K G) : Sheaf J A ⥤ Sheaf K A
+def Functor.sheafPushforwardCocontinuous {G : C ⥤ D}
+    (hG : CategoryTheory.Functor.IsCocontinuous J K G) : Sheaf J A ⥤ Sheaf K A
     where
-  obj ℱ := ⟨(ran G.op).obj ℱ.val, ran_isSheaf_of_coverLifting hG ℱ⟩
+  obj ℱ := ⟨(ran G.op).obj ℱ.val, ran_isSheaf_of_isCocontinuous hG ℱ⟩
   map _ _ f := ⟨(ran G.op).map f.val⟩
   map_id' ℱ := Sheaf.Hom.ext _ _ <| (ran G.op).map_id ℱ.val
   map_comp' _ _ _ f g := Sheaf.Hom.ext _ _ <| (ran G.op).map_comp f.val g.val
-#align category_theory.sites.copullback CategoryTheory.Sites.copullback
+#align category_theory.sites.copullback CategoryTheory.Functor.sheafPushforwardCocontinuous
 -/
 
-#print CategoryTheory.Sites.pullbackCopullbackAdjunction /-
+#print CategoryTheory.Functor.sheafAdjunctionCocontinuous /-
 /--
 Given a functor between sites that is cover-preserving, cover-lifting, and compatible-preserving,
 the pullback and copullback along `G` are adjoint to each other
 -/
 @[simps unit_app_val counit_app_val]
-noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPreserving J K G)
-    (Hl : CoverLifting J K G) (Hc : CompatiblePreserving K G) :
-    Sites.pullback A Hc Hp ⊣ Sites.copullback A Hl
+noncomputable def Functor.sheafAdjunctionCocontinuous {G : C ⥤ D} (Hp : CoverPreserving J K G)
+    (Hl : CategoryTheory.Functor.IsCocontinuous J K G) (Hc : CompatiblePreserving K G) :
+    Functor.sheafPushforwardContinuous A Hc Hp ⊣ Functor.sheafPushforwardCocontinuous A Hl
     where
   homEquiv X Y :=
     { toFun := fun f => ⟨(Ran.adjunction A G.op).homEquiv X.val Y.val f.val⟩
@@ -358,7 +360,7 @@ noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPr
         Sheaf.Hom.ext _ _ <| (Ran.adjunction A G.op).counit.naturality f.val }
   homEquiv_unit X Y f := by ext1; apply (Ran.adjunction A G.op).homEquiv_unit
   homEquiv_counit X Y f := by ext1; apply (Ran.adjunction A G.op).homEquiv_counit
-#align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Sites.pullbackCopullbackAdjunction
+#align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Functor.sheafAdjunctionCocontinuous
 -/
 
 end CategoryTheory
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2021 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
 -/
-import Mathbin.CategoryTheory.Sites.Sheaf
-import Mathbin.CategoryTheory.Limits.KanExtension
-import Mathbin.CategoryTheory.Sites.CoverPreserving
+import CategoryTheory.Sites.Sheaf
+import CategoryTheory.Limits.KanExtension
+import CategoryTheory.Sites.CoverPreserving
 
 #align_import category_theory.sites.cover_lifting from "leanprover-community/mathlib"@"bd15ff41b70f5e2cc210f26f25a8d5c53b20d3de"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module category_theory.sites.cover_lifting
-! leanprover-community/mathlib commit bd15ff41b70f5e2cc210f26f25a8d5c53b20d3de
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Sites.Sheaf
 import Mathbin.CategoryTheory.Limits.KanExtension
 import Mathbin.CategoryTheory.Sites.CoverPreserving
 
+#align_import category_theory.sites.cover_lifting from "leanprover-community/mathlib"@"bd15ff41b70f5e2cc210f26f25a8d5c53b20d3de"
+
 /-!
 # Cover-lifting functors between sites.
 
Diff
@@ -84,18 +84,22 @@ structure CoverLifting (G : C ⥤ D) : Prop where
 #align category_theory.cover_lifting CategoryTheory.CoverLifting
 -/
 
+#print CategoryTheory.idCoverLifting /-
 /-- The identity functor on a site is cover-lifting. -/
 theorem idCoverLifting : CoverLifting J J (𝟭 _) :=
   ⟨fun _ _ h => by simpa using h⟩
 #align category_theory.id_cover_lifting CategoryTheory.idCoverLifting
+-/
 
 variable {J K}
 
+#print CategoryTheory.compCoverLifting /-
 /-- The composition of two cover-lifting functors are cover-lifting -/
 theorem compCoverLifting {F : C ⥤ D} (hu : CoverLifting J K F) {G : D ⥤ E}
     (hv : CoverLifting K L G) : CoverLifting J L (F ⋙ G) :=
   ⟨fun _ S h => hu.cover_lift (hv.cover_lift h)⟩
 #align category_theory.comp_cover_lifting CategoryTheory.compCoverLifting
+-/
 
 end CoverLifting
 
@@ -141,23 +145,26 @@ variable (x : S.arrows.FamilyOfElements ((ran G.op).obj ℱ.val ⋙ coyoneda.obj
 
 variable (hx : x.Compatible)
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily /-
 /-- The family of morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` defined on `{ Y' ⊆ Y : G(Y') ⊆ U ∈ S}`. -/
 def pulledbackFamily (Y : StructuredArrow (op U) G.op) :=
   ((x.pullback Y.Hom.unop).functorPullback G).compPresheafMap
     (show _ ⟶ _ from whiskerRight ((Ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X)))
 #align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply /-
 @[simp]
 theorem pulledbackFamily_apply (Y : StructuredArrow (op U) G.op) {W} {f : W ⟶ _} (Hf) :
     pulledbackFamily ℱ S x Y f Hf =
       x (G.map f ≫ Y.Hom.unop) Hf ≫ ((Ran.adjunction A G.op).counit.app ℱ.val).app (op W) :=
   rfl
 #align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply
+-/
 
 variable {x} {S}
 
-include hu hS hx
-
+#print CategoryTheory.RanIsSheafOfCoverLifting.getSection /-
 /-- Given a `G(Y) ⊆ U`, we can find a unique section `X ⟶ ℱ(Y)` that agrees with `x`. -/
 def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   by
@@ -166,12 +173,16 @@ def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   have hs' := ((hx.pullback Y.3.unop).functorPullback G).compPresheafMap hom_sh
   exact (ℱ.2 X _ (hu.cover_lift S')).amalgamate _ hs'
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSection
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation /-
 theorem getSection_isAmalgamation (Y : StructuredArrow (op U) G.op) :
     (pulledbackFamily ℱ S x Y).IsAmalgamation (getSection hu ℱ hS hx Y) :=
   IsSheafFor.isAmalgamation _ _
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique /-
 theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
     (H : (pulledbackFamily ℱ S x Y).IsAmalgamation y) : y = getSection hu ℱ hS hx Y :=
   by
@@ -180,7 +191,9 @@ theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
   · apply get_section_is_amalgamation
   · exact ℱ.2 X _ (hu.cover_lift (K.pullback_stable Y.hom.unop hS))
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute /-
 @[simp]
 theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
     getSection hu ℱ hS hx Y ≫ ℱ.val.map f.right = getSection hu ℱ hS hx Z :=
@@ -197,7 +210,9 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
   · change S (G.map _ ≫ Y.hom.unop)
     simpa only [functor.map_comp, category.assoc] using hV'
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone /-
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
   { pt
@@ -205,17 +220,23 @@ def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
       { app := fun Y => getSection hu ℱ hS hx Y
         naturality' := fun Y Z f => by tidy } }
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app /-
 @[simp]
 theorem gluedLimitCone_π_app (W) : (gluedLimitCone hu ℱ hS hx).π.app W = getSection hu ℱ hS hx W :=
   rfl
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.gluedSection /-
 /-- The section obtained by passing `glued_limit_cone` into `category_theory.limits.limit.lift`. -/
 def gluedSection : X ⟶ ((ran G.op).obj ℱ.val).obj (op U) :=
   limit.lift _ (gluedLimitCone hu ℱ hS hx)
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSection
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.helper /-
 /--
 A helper lemma for the following two lemmas. Basically stating that if the section `y : X ⟶ 𝒢(V)`
 coincides with `x` on `G(V')` for all `G(V') ⊆ V ∈ S`, then `X ⟶ 𝒢(V) ⟶ ℱ(W)` is indeed the
@@ -249,7 +270,9 @@ theorem helper {V} (f : V ⟶ U) (y : X ⟶ ((ran G.op).obj ℱ.val).obj (op V))
   erw [category.comp_id]
   simp only [Quiver.Hom.unop_op, functor.op_map, Quiver.Hom.op_unop]
 #align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helper
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation /-
 /-- Verify that the `glued_section` is an amalgamation of `x`. -/
 theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS hx) :=
   by
@@ -263,7 +286,9 @@ theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS h
   convert hx fV' (𝟙 _) hV hV' (by rw [category.id_comp])
   simp only [op_id, functor_to_types.map_id_apply]
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation
+-/
 
+#print CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique /-
 /-- Verify that the amalgamation is indeed unique. -/
 theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection hu ℱ hS hx :=
   by
@@ -276,9 +301,11 @@ theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection
     convert hy fV' (by simpa only [category.comp_id] using hV')
     erw [category.comp_id]
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique
+-/
 
 end RanIsSheafOfCoverLifting
 
+#print CategoryTheory.ran_isSheaf_of_coverLifting /-
 /-- If `G` is cover_lifting, then `Ran G.op` pushes sheaves to sheaves.
 
 This result is basically https://stacks.math.columbia.edu/tag/00XK,
@@ -294,6 +321,7 @@ theorem ran_isSheaf_of_coverLifting {G : C ⥤ D} (hG : CoverLifting J K G) (ℱ
   · apply Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation
   · apply Ran_is_sheaf_of_cover_lifting.glued_section_is_unique
 #align category_theory.Ran_is_sheaf_of_cover_lifting CategoryTheory.ran_isSheaf_of_coverLifting
+-/
 
 variable (A)
 
Diff
@@ -188,7 +188,7 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
   apply get_section_is_unique
   intro V' fV' hV'
   have eq : Z.hom = Y.hom ≫ (G.map f.right.unop).op := by convert f.w; erw [category.id_comp]
-  rw [Eq] at hV'
+  rw [Eq] at hV' 
   convert get_section_is_amalgamation hu ℱ hS hx Y (fV' ≫ f.right.unop) _ using 1
   · tidy
   ·
Diff
@@ -84,12 +84,6 @@ structure CoverLifting (G : C ⥤ D) : Prop where
 #align category_theory.cover_lifting CategoryTheory.CoverLifting
 -/
 
-/- warning: category_theory.id_cover_lifting -> CategoryTheory.idCoverLifting is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (J : CategoryTheory.GrothendieckTopology.{u2, u1} C _inst_1), CategoryTheory.CoverLifting.{u1, u2, u1, u2} C _inst_1 C _inst_1 J J (CategoryTheory.Functor.id.{u2, u1} C _inst_1)
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1), CategoryTheory.CoverLifting.{u2, u1, u2, u1} C _inst_1 C _inst_1 J J (CategoryTheory.Functor.id.{u1, u2} C _inst_1)
-Case conversion may be inaccurate. Consider using '#align category_theory.id_cover_lifting CategoryTheory.idCoverLiftingₓ'. -/
 /-- The identity functor on a site is cover-lifting. -/
 theorem idCoverLifting : CoverLifting J J (𝟭 _) :=
   ⟨fun _ _ h => by simpa using h⟩
@@ -97,12 +91,6 @@ theorem idCoverLifting : CoverLifting J J (𝟭 _) :=
 
 variable {J K}
 
-/- warning: category_theory.comp_cover_lifting -> CategoryTheory.compCoverLifting is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] {J : CategoryTheory.GrothendieckTopology.{u2, u1} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u4, u3} D _inst_2} {L : CategoryTheory.GrothendieckTopology.{u6, u5} E _inst_3} {F : CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u1, u2, u3, u4} C _inst_1 D _inst_2 J K F) -> (forall {G : CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3}, (CategoryTheory.CoverLifting.{u3, u4, u5, u6} D _inst_2 E _inst_3 K L G) -> (CategoryTheory.CoverLifting.{u1, u2, u5, u6} C _inst_1 E _inst_3 J L (CategoryTheory.Functor.comp.{u2, u4, u6, u1, u3, u5} C _inst_1 D _inst_2 E _inst_3 F G)))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u5, u3} D] {E : Type.{u1}} [_inst_3 : CategoryTheory.Category.{u2, u1} E] {J : CategoryTheory.GrothendieckTopology.{u6, u4} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u5, u3} D _inst_2} {L : CategoryTheory.GrothendieckTopology.{u2, u1} E _inst_3} {F : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u4, u6, u3, u5} C _inst_1 D _inst_2 J K F) -> (forall {G : CategoryTheory.Functor.{u5, u2, u3, u1} D _inst_2 E _inst_3}, (CategoryTheory.CoverLifting.{u3, u5, u1, u2} D _inst_2 E _inst_3 K L G) -> (CategoryTheory.CoverLifting.{u4, u6, u1, u2} C _inst_1 E _inst_3 J L (CategoryTheory.Functor.comp.{u6, u5, u2, u4, u3, u1} C _inst_1 D _inst_2 E _inst_3 F G)))
-Case conversion may be inaccurate. Consider using '#align category_theory.comp_cover_lifting CategoryTheory.compCoverLiftingₓ'. -/
 /-- The composition of two cover-lifting functors are cover-lifting -/
 theorem compCoverLifting {F : C ⥤ D} (hu : CoverLifting J K F) {G : D ⥤ E}
     (hv : CoverLifting K L G) : CoverLifting J L (F ⋙ G) :=
@@ -153,18 +141,12 @@ variable (x : S.arrows.FamilyOfElements ((ran G.op).obj ℱ.val ⋙ coyoneda.obj
 
 variable (hx : x.Compatible)
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family -> CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamilyₓ'. -/
 /-- The family of morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` defined on `{ Y' ⊆ Y : G(Y') ⊆ U ∈ S}`. -/
 def pulledbackFamily (Y : StructuredArrow (op U) G.op) :=
   ((x.pullback Y.Hom.unop).functorPullback G).compPresheafMap
     (show _ ⟶ _ from whiskerRight ((Ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X)))
 #align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply -> CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_applyₓ'. -/
 @[simp]
 theorem pulledbackFamily_apply (Y : StructuredArrow (op U) G.op) {W} {f : W ⟶ _} (Hf) :
     pulledbackFamily ℱ S x Y f Hf =
@@ -176,9 +158,6 @@ variable {x} {S}
 
 include hu hS hx
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section -> CategoryTheory.RanIsSheafOfCoverLifting.getSection is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSectionₓ'. -/
 /-- Given a `G(Y) ⊆ U`, we can find a unique section `X ⟶ ℱ(Y)` that agrees with `x`. -/
 def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   by
@@ -188,17 +167,11 @@ def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   exact (ℱ.2 X _ (hu.cover_lift S')).amalgamate _ hs'
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSection
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamationₓ'. -/
 theorem getSection_isAmalgamation (Y : StructuredArrow (op U) G.op) :
     (pulledbackFamily ℱ S x Y).IsAmalgamation (getSection hu ℱ hS hx Y) :=
   IsSheafFor.isAmalgamation _ _
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_uniqueₓ'. -/
 theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
     (H : (pulledbackFamily ℱ S x Y).IsAmalgamation y) : y = getSection hu ℱ hS hx Y :=
   by
@@ -208,9 +181,6 @@ theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
   · exact ℱ.2 X _ (hu.cover_lift (K.pullback_stable Y.hom.unop hS))
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commuteₓ'. -/
 @[simp]
 theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
     getSection hu ℱ hS hx Y ≫ ℱ.val.map f.right = getSection hu ℱ hS hx Z :=
@@ -228,9 +198,6 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
     simpa only [functor.map_comp, category.assoc] using hV'
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone -> CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitConeₓ'. -/
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
   { pt
@@ -239,25 +206,16 @@ def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
         naturality' := fun Y Z f => by tidy } }
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app -> CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_appₓ'. -/
 @[simp]
 theorem gluedLimitCone_π_app (W) : (gluedLimitCone hu ℱ hS hx).π.app W = getSection hu ℱ hS hx W :=
   rfl
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSectionₓ'. -/
 /-- The section obtained by passing `glued_limit_cone` into `category_theory.limits.limit.lift`. -/
 def gluedSection : X ⟶ ((ran G.op).obj ℱ.val).obj (op U) :=
   limit.lift _ (gluedLimitCone hu ℱ hS hx)
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSection
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.helper -> CategoryTheory.RanIsSheafOfCoverLifting.helper is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helperₓ'. -/
 /--
 A helper lemma for the following two lemmas. Basically stating that if the section `y : X ⟶ 𝒢(V)`
 coincides with `x` on `G(V')` for all `G(V') ⊆ V ∈ S`, then `X ⟶ 𝒢(V) ⟶ ℱ(W)` is indeed the
@@ -292,9 +250,6 @@ theorem helper {V} (f : V ⟶ U) (y : X ⟶ ((ran G.op).obj ℱ.val).obj (op V))
   simp only [Quiver.Hom.unop_op, functor.op_map, Quiver.Hom.op_unop]
 #align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helper
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamationₓ'. -/
 /-- Verify that the `glued_section` is an amalgamation of `x`. -/
 theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS hx) :=
   by
@@ -309,9 +264,6 @@ theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS h
   simp only [op_id, functor_to_types.map_id_apply]
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_uniqueₓ'. -/
 /-- Verify that the amalgamation is indeed unique. -/
 theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection hu ℱ hS hx :=
   by
@@ -327,12 +279,6 @@ theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection
 
 end RanIsSheafOfCoverLifting
 
-/- warning: category_theory.Ran_is_sheaf_of_cover_lifting -> CategoryTheory.ran_isSheaf_of_coverLifting is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3), CategoryTheory.Presheaf.IsSheaf.{u2, max u3 u2, u3, u1} D _inst_2 A _inst_3 K (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3), CategoryTheory.Presheaf.IsSheaf.{u2, max u3 u2, u3, u1} D _inst_2 A _inst_3 K (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)))
-Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting CategoryTheory.ran_isSheaf_of_coverLiftingₓ'. -/
 /-- If `G` is cover_lifting, then `Ran G.op` pushes sheaves to sheaves.
 
 This result is basically https://stacks.math.columbia.edu/tag/00XK,
Diff
@@ -217,10 +217,7 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
   by
   apply get_section_is_unique
   intro V' fV' hV'
-  have eq : Z.hom = Y.hom ≫ (G.map f.right.unop).op :=
-    by
-    convert f.w
-    erw [category.id_comp]
+  have eq : Z.hom = Y.hom ≫ (G.map f.right.unop).op := by convert f.w; erw [category.id_comp]
   rw [Eq] at hV'
   convert get_section_is_amalgamation hu ℱ hS hx Y (fV' ≫ f.right.unop) _ using 1
   · tidy
@@ -378,14 +375,8 @@ noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPr
   homEquiv X Y :=
     { toFun := fun f => ⟨(Ran.adjunction A G.op).homEquiv X.val Y.val f.val⟩
       invFun := fun f => ⟨((Ran.adjunction A G.op).homEquiv X.val Y.val).symm f.val⟩
-      left_inv := fun f => by
-        ext1
-        dsimp
-        rw [Equiv.symm_apply_apply]
-      right_inv := fun f => by
-        ext1
-        dsimp
-        rw [Equiv.apply_symm_apply] }
+      left_inv := fun f => by ext1; dsimp; rw [Equiv.symm_apply_apply]
+      right_inv := fun f => by ext1; dsimp; rw [Equiv.apply_symm_apply] }
   Unit :=
     { app := fun X => ⟨(Ran.adjunction A G.op).Unit.app X.val⟩
       naturality' := fun _ _ f =>
@@ -394,12 +385,8 @@ noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPr
     { app := fun X => ⟨(Ran.adjunction A G.op).counit.app X.val⟩
       naturality' := fun _ _ f =>
         Sheaf.Hom.ext _ _ <| (Ran.adjunction A G.op).counit.naturality f.val }
-  homEquiv_unit X Y f := by
-    ext1
-    apply (Ran.adjunction A G.op).homEquiv_unit
-  homEquiv_counit X Y f := by
-    ext1
-    apply (Ran.adjunction A G.op).homEquiv_counit
+  homEquiv_unit X Y f := by ext1; apply (Ran.adjunction A G.op).homEquiv_unit
+  homEquiv_counit X Y f := by ext1; apply (Ran.adjunction A G.op).homEquiv_counit
 #align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Sites.pullbackCopullbackAdjunction
 -/
 
Diff
@@ -154,10 +154,7 @@ variable (x : S.arrows.FamilyOfElements ((ran G.op).obj ℱ.val ⋙ coyoneda.obj
 variable (hx : x.Compatible)
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family -> CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} (S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U), (CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)) -> (forall (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} C _inst_1 (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (fun (_x : CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) => CategoryTheory.Presieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.hasCoeToFun.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} (S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U), (CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)) -> (forall (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} C _inst_1 (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamilyₓ'. -/
 /-- The family of morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` defined on `{ Y' ⊆ Y : G(Y') ⊆ U ∈ S}`. -/
 def pulledbackFamily (Y : StructuredArrow (op U) G.op) :=
@@ -166,10 +163,7 @@ def pulledbackFamily (Y : StructuredArrow (op U) G.op) :=
 #align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply -> CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} (S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) {W : C} {f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) W (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))} (Hf : CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (fun (_x : CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) => CategoryTheory.Presieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.hasCoeToFun.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S)) W f), Eq.{succ (max u3 u2)} (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} C W)) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y W f Hf) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G W))) (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} C W)) (x (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G W) (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G W) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) U (CategoryTheory.Functor.map.{u2, u2, u3, u3} C _inst_1 D _inst_2 G W (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) f) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) Hf) (CategoryTheory.NatTrans.app.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Ran.adjunction._proof_1.{u3, u3, u1, u2, u2, max u3 u2} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Functor.obj.{max u3 u2, max (max u2 (max u3 u2) u3 u1) u3 u2, max u2 u3, max (max u3 u2) u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Ran.adjunction._proof_1.{u3, u3, u1, u2, u2, max u3 u2} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Functor.obj.{max u3 u2, max (max u2 (max u3 u2) u3 u1) u3 u2, max u2 u3, max (max u3 u2) u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G))) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Adjunction.counit.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.obj.{max u3 u2, max (max u2 (max u3 u2) u3 u1) u3 u2, max u2 u3, max (max u3 u2) u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Ran.adjunction._proof_1.{u3, u3, u1, u2, u2, max u3 u2} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Ran.adjunction.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} C W)))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} (S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) {W : C} {f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) W (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))} (Hf : CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S)) W f), Eq.{max (succ u3) (succ u2)} (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (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))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} C W)) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y W f Hf) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) W))) (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} C W)) (x (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) W) (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) W) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) U (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) W (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) f) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) Hf) (CategoryTheory.NatTrans.app.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (max (succ u1) (succ (max u3 u2))) (succ u2)) (succ u3), max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max (max u1 u3 u2) u2) u3, max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (max (succ u1) (succ (max u3 u2))) (succ u2)) (succ u3), max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max (max u1 u3 u2) u2) u3, max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G))) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Adjunction.counit.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (max (succ u1) (succ (max u3 u2))) (succ u2)) (succ u3), max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max (max u1 u3 u2) u2) u3, max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Ran.adjunction.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} C W)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_applyₓ'. -/
 @[simp]
 theorem pulledbackFamily_apply (Y : StructuredArrow (op U) G.op) {W} {f : W ⟶ _} (Hf) :
@@ -183,10 +177,7 @@ variable {x} {S}
 include hu hS hx
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section -> CategoryTheory.RanIsSheafOfCoverLifting.getSection is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.getSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.getSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (forall (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (forall (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), Quiver.Hom.{max (succ u3) (succ u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSectionₓ'. -/
 /-- Given a `G(Y) ⊆ U`, we can find a unique section `X ⟶ ℱ(Y)` that agrees with `x`. -/
 def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
@@ -198,10 +189,7 @@ def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSection
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} C _inst_1 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (fun (_x : CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) => CategoryTheory.Presieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.hasCoeToFun.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx Y)
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} C _inst_1 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Y)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamationₓ'. -/
 theorem getSection_isAmalgamation (Y : StructuredArrow (op U) G.op) :
     (pulledbackFamily ℱ S x Y).IsAmalgamation (getSection hu ℱ hS hx Y) :=
@@ -209,10 +197,7 @@ theorem getSection_isAmalgamation (Y : StructuredArrow (op U) G.op) :
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) {y : CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} C (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))}, (CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} C _inst_1 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (fun (_x : CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) => CategoryTheory.Presieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.hasCoeToFun.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y) y) -> (Eq.{succ (max u3 u2)} (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} C (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) y (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx Y))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) {y : Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (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))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} C (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))}, (CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} C _inst_1 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y) y) -> (Eq.{max (succ u3) (succ u2)} (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (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))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} C (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) y (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_uniqueₓ'. -/
 theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
     (H : (pulledbackFamily ℱ S x Y).IsAmalgamation y) : y = getSection hu ℱ hS hx Y :=
@@ -224,10 +209,7 @@ theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) {Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)} {Z : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)} (f : Quiver.Hom.{succ u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) Y Z), Eq.{succ (max u3 u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z)) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Y) (CategoryTheory.Functor.map.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z) (CategoryTheory.CommaMorphism.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y Z f))) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Z)
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) {Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)} {Z : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)} (f : Quiver.Hom.{succ u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) Y Z), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z)) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Y) (Prefunctor.map.{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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z) (CategoryTheory.CommaMorphism.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y Z f))) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Z)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commuteₓ'. -/
 @[simp]
 theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
@@ -250,10 +232,7 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone -> CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (CategoryTheory.Limits.Cone.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)))))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (CategoryTheory.Limits.Cone.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitConeₓ'. -/
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
@@ -264,10 +243,7 @@ def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app -> CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (W : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), Eq.{succ (max u3 u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, u1, max u2 (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) W) (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) W)) (CategoryTheory.NatTrans.app.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, u1, max u2 (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.Limits.Cone.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)) W) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, u1, max u2 (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) W) U S hS x hx W)
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (W : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (Prefunctor.obj.{succ u2, succ (max u3 u2), max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), u1, max (max u3 u2) u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, u1, max (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3)) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)))) W) (Prefunctor.obj.{succ u2, succ (max u3 u2), max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U))) W)) (CategoryTheory.NatTrans.app.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), u1, max (max u3 u2) u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, u1, max (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3)) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.Limits.Cone.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)) W) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx W)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_appₓ'. -/
 @[simp]
 theorem gluedLimitCone_π_app (W) : (gluedLimitCone hu ℱ hS hx).π.app W = getSection hu ℱ hS hx W :=
@@ -275,10 +251,7 @@ theorem gluedLimitCone_π_app (W) : (gluedLimitCone hu ℱ hS hx).π.app W = get
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D U)))))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (Quiver.Hom.{max (succ u3) (succ u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D U)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSectionₓ'. -/
 /-- The section obtained by passing `glued_limit_cone` into `category_theory.limits.limit.lift`. -/
 def gluedSection : X ⟶ ((ran G.op).obj ℱ.val).obj (op U) :=
@@ -286,10 +259,7 @@ def gluedSection : X ⟶ ((ran G.op).obj ℱ.val).obj (op U) :=
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSection
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.helper -> CategoryTheory.RanIsSheafOfCoverLifting.helper is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) {V : D} (f : Quiver.Hom.{succ u2, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) V U) (y : Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D V))) (W : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), (forall {V' : C} {fV : Quiver.Hom.{succ u2, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') V} (hV : CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') V U fV f)), Eq.{succ (max u3 u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V')))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D V)) (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V'))) y (CategoryTheory.Functor.map.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D V) (Opposite.op.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V')) (Quiver.Hom.op.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') V fV))) (x (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') V U fV f) hV)) -> (Eq.{succ (max u3 u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) W)) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D V)) (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) W) y (CategoryTheory.Limits.limit.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) (CategoryTheory.ran._proof_1.{u3, u3, u1, u2, u2, max u3 u2} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) W)) (CategoryTheory.NatTrans.app.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, u1, max u2 (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.Limits.Cone.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)) (CategoryTheory.Functor.obj.{u2, u2, max u3 u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.map.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (Quiver.Hom.op.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) V U f)) W)))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) {V : D} (f : Quiver.Hom.{succ u2, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) V U) (y : Quiver.Hom.{max (succ u3) (succ u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D V))) (W : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), (forall {V' : C} {fV : Quiver.Hom.{succ u2, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') V} (hV : CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') V U fV f)), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V')))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D V)) (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V'))) y (Prefunctor.map.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D V) (Opposite.op.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V')) (Quiver.Hom.op.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') V fV))) (x (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') V U fV f) hV)) -> (Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (Prefunctor.obj.{succ u2, succ (max u3 u2), max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V))) W)) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D V)) (Prefunctor.obj.{succ u2, succ (max u3 u2), max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V))) W) y (CategoryTheory.Limits.limit.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u2, max u3 u2, max u3 u2, u1} A _inst_3 (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G (Opposite.op.{succ u3} D V)) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V))) W)) (CategoryTheory.NatTrans.app.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), u1, max (max u3 u2) u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, u1, max (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3)) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.Limits.Cone.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)) (Prefunctor.obj.{succ u2, succ u2, max u2 u3, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u2 u3, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.map.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (Quiver.Hom.op.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) V U f))) W)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helperₓ'. -/
 /--
 A helper lemma for the following two lemmas. Basically stating that if the section `y : X ⟶ 𝒢(V)`
@@ -326,10 +296,7 @@ theorem helper {V} (f : V ⟶ U) (y : X ⟶ ((ran G.op).obj ℱ.val).obj (op V))
 #align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helper
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x), CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx)
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x), CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamationₓ'. -/
 /-- Verify that the `glued_section` is an amalgamation of `x`. -/
 theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS hx) :=
@@ -346,10 +313,7 @@ theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS h
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation
 
 /- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (y : CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} D U)), (CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x y) -> (Eq.{succ (max u3 u2)} (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} D U)) y (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx))
-but is expected to have type
-  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (y : Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} D U)), (CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x y) -> (Eq.{max (succ u3) (succ u2)} (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} D U)) y (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_uniqueₓ'. -/
 /-- Verify that the amalgamation is indeed unique. -/
 theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection hu ℱ hS hx :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
 
 ! This file was ported from Lean 3 source module category_theory.sites.cover_lifting
-! leanprover-community/mathlib commit 14b69e9f3c16630440a2cbd46f1ddad0d561dee7
+! leanprover-community/mathlib commit bd15ff41b70f5e2cc210f26f25a8d5c53b20d3de
 ! 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.Sites.CoverPreserving
 /-!
 # Cover-lifting functors between sites.
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We define cover-lifting functors between sites as functors that pull covering sieves back to
 covering sieves. This concept is also known as *cocontinuous functors* or
 *cover-reflecting functors*, but we have chosen this name following [MM92] in order to avoid
Diff
@@ -71,6 +71,7 @@ variable (J : GrothendieckTopology C) (K : GrothendieckTopology D)
 
 variable {L : GrothendieckTopology E}
 
+#print CategoryTheory.CoverLifting /-
 /-- A functor `G : (C, J) ⥤ (D, K)` between sites is called to have the cover-lifting property
 if for all covering sieves `R` in `D`, `R.pullback G` is a covering sieve in `C`.
 -/
@@ -78,7 +79,14 @@ if for all covering sieves `R` in `D`, `R.pullback G` is a covering sieve in `C`
 structure CoverLifting (G : C ⥤ D) : Prop where
   cover_lift : ∀ {U : C} {S : Sieve (G.obj U)} (hS : S ∈ K (G.obj U)), S.functorPullback G ∈ J U
 #align category_theory.cover_lifting CategoryTheory.CoverLifting
+-/
 
+/- warning: category_theory.id_cover_lifting -> CategoryTheory.idCoverLifting is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] (J : CategoryTheory.GrothendieckTopology.{u2, u1} C _inst_1), CategoryTheory.CoverLifting.{u1, u2, u1, u2} C _inst_1 C _inst_1 J J (CategoryTheory.Functor.id.{u2, u1} C _inst_1)
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (J : CategoryTheory.GrothendieckTopology.{u1, u2} C _inst_1), CategoryTheory.CoverLifting.{u2, u1, u2, u1} C _inst_1 C _inst_1 J J (CategoryTheory.Functor.id.{u1, u2} C _inst_1)
+Case conversion may be inaccurate. Consider using '#align category_theory.id_cover_lifting CategoryTheory.idCoverLiftingₓ'. -/
 /-- The identity functor on a site is cover-lifting. -/
 theorem idCoverLifting : CoverLifting J J (𝟭 _) :=
   ⟨fun _ _ h => by simpa using h⟩
@@ -86,6 +94,12 @@ theorem idCoverLifting : CoverLifting J J (𝟭 _) :=
 
 variable {J K}
 
+/- warning: category_theory.comp_cover_lifting -> CategoryTheory.compCoverLifting is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} [_inst_1 : CategoryTheory.Category.{u2, u1} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u4, u3} D] {E : Type.{u5}} [_inst_3 : CategoryTheory.Category.{u6, u5} E] {J : CategoryTheory.GrothendieckTopology.{u2, u1} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u4, u3} D _inst_2} {L : CategoryTheory.GrothendieckTopology.{u6, u5} E _inst_3} {F : CategoryTheory.Functor.{u2, u4, u1, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u1, u2, u3, u4} C _inst_1 D _inst_2 J K F) -> (forall {G : CategoryTheory.Functor.{u4, u6, u3, u5} D _inst_2 E _inst_3}, (CategoryTheory.CoverLifting.{u3, u4, u5, u6} D _inst_2 E _inst_3 K L G) -> (CategoryTheory.CoverLifting.{u1, u2, u5, u6} C _inst_1 E _inst_3 J L (CategoryTheory.Functor.comp.{u2, u4, u6, u1, u3, u5} C _inst_1 D _inst_2 E _inst_3 F G)))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u6, u4} C] {D : Type.{u3}} [_inst_2 : CategoryTheory.Category.{u5, u3} D] {E : Type.{u1}} [_inst_3 : CategoryTheory.Category.{u2, u1} E] {J : CategoryTheory.GrothendieckTopology.{u6, u4} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u5, u3} D _inst_2} {L : CategoryTheory.GrothendieckTopology.{u2, u1} E _inst_3} {F : CategoryTheory.Functor.{u6, u5, u4, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u4, u6, u3, u5} C _inst_1 D _inst_2 J K F) -> (forall {G : CategoryTheory.Functor.{u5, u2, u3, u1} D _inst_2 E _inst_3}, (CategoryTheory.CoverLifting.{u3, u5, u1, u2} D _inst_2 E _inst_3 K L G) -> (CategoryTheory.CoverLifting.{u4, u6, u1, u2} C _inst_1 E _inst_3 J L (CategoryTheory.Functor.comp.{u6, u5, u2, u4, u3, u1} C _inst_1 D _inst_2 E _inst_3 F G)))
+Case conversion may be inaccurate. Consider using '#align category_theory.comp_cover_lifting CategoryTheory.compCoverLiftingₓ'. -/
 /-- The composition of two cover-lifting functors are cover-lifting -/
 theorem compCoverLifting {F : C ⥤ D} (hu : CoverLifting J K F) {G : D ⥤ E}
     (hv : CoverLifting K L G) : CoverLifting J L (F ⋙ G) :=
@@ -136,12 +150,24 @@ variable (x : S.arrows.FamilyOfElements ((ran G.op).obj ℱ.val ⋙ coyoneda.obj
 
 variable (hx : x.Compatible)
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family -> CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} (S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U), (CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)) -> (forall (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} C _inst_1 (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (fun (_x : CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) => CategoryTheory.Presieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.hasCoeToFun.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} (S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U), (CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)) -> (forall (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} C _inst_1 (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamilyₓ'. -/
 /-- The family of morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` defined on `{ Y' ⊆ Y : G(Y') ⊆ U ∈ S}`. -/
 def pulledbackFamily (Y : StructuredArrow (op U) G.op) :=
   ((x.pullback Y.Hom.unop).functorPullback G).compPresheafMap
     (show _ ⟶ _ from whiskerRight ((Ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X)))
 #align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply -> CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} (S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) {W : C} {f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) W (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))} (Hf : CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (fun (_x : CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) => CategoryTheory.Presieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.hasCoeToFun.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S)) W f), Eq.{succ (max u3 u2)} (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} C W)) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y W f Hf) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G W))) (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} C W)) (x (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G W) (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G W) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) U (CategoryTheory.Functor.map.{u2, u2, u3, u3} C _inst_1 D _inst_2 G W (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) f) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) Hf) (CategoryTheory.NatTrans.app.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Ran.adjunction._proof_1.{u3, u3, u1, u2, u2, max u3 u2} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Functor.obj.{max u3 u2, max (max u2 (max u3 u2) u3 u1) u3 u2, max u2 u3, max (max u3 u2) u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Ran.adjunction._proof_1.{u3, u3, u1, u2, u2, max u3 u2} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Functor.obj.{max u3 u2, max (max u2 (max u3 u2) u3 u1) u3 u2, max u2 u3, max (max u3 u2) u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G))) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Adjunction.counit.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.obj.{max u3 u2, max (max u2 (max u3 u2) u3 u1) u3 u2, max u2 u3, max (max u3 u2) u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Ran.adjunction._proof_1.{u3, u3, u1, u2, u2, max u3 u2} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Ran.adjunction.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} C W)))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} (S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) {W : C} {f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) W (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))} (Hf : CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S)) W f), Eq.{max (succ u3) (succ u2)} (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (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))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} C W)) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y W f Hf) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) W))) (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} C W)) (x (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) W) (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) W) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) U (Prefunctor.map.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) W (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) f) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) Hf) (CategoryTheory.NatTrans.app.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (max (succ u1) (succ (max u3 u2))) (succ u2)) (succ u3), max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max (max u1 u3 u2) u2) u3, max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (max (succ u1) (succ (max u3 u2))) (succ u2)) (succ u3), max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max (max u1 u3 u2) u2) u3, max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G))) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Adjunction.counit.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (Prefunctor.obj.{max (succ u2) (succ u3), max (max (max (succ u1) (succ (max u3 u2))) (succ u2)) (succ u3), max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u1 u3 u2) u2) u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)))) (CategoryTheory.Functor.toPrefunctor.{max u2 u3, max (max (max u1 u3 u2) u2) u3, max u2 u3, max (max (max (max (max u1 u3 u2) u2) u3) u2) u3} (CategoryTheory.Functor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.category.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2)) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.whiskeringLeft.{u3, u2, u3, u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Ran.adjunction.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} C W)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_applyₓ'. -/
 @[simp]
 theorem pulledbackFamily_apply (Y : StructuredArrow (op U) G.op) {W} {f : W ⟶ _} (Hf) :
     pulledbackFamily ℱ S x Y f Hf =
@@ -153,6 +179,12 @@ variable {x} {S}
 
 include hu hS hx
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section -> CategoryTheory.RanIsSheafOfCoverLifting.getSection is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.getSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.getSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (forall (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (forall (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), Quiver.Hom.{max (succ u3) (succ u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSectionₓ'. -/
 /-- Given a `G(Y) ⊆ U`, we can find a unique section `X ⟶ ℱ(Y)` that agrees with `x`. -/
 def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   by
@@ -162,11 +194,23 @@ def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   exact (ℱ.2 X _ (hu.cover_lift S')).amalgamate _ hs'
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSection
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} C _inst_1 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (fun (_x : CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) => CategoryTheory.Presieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.hasCoeToFun.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx Y)
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} C _inst_1 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Y)
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamationₓ'. -/
 theorem getSection_isAmalgamation (Y : StructuredArrow (op U) G.op) :
     (pulledbackFamily ℱ S x Y).IsAmalgamation (getSection hu ℱ hS hx Y) :=
   IsSheafFor.isAmalgamation _ _
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) {y : CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} C (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))}, (CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} C _inst_1 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (fun (_x : CategoryTheory.Sieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) => CategoryTheory.Presieve.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.hasCoeToFun.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y) y) -> (Eq.{succ (max u3 u2)} (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{max u3 u2, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} C (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) y (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx Y))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) {y : Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (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))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} C (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))}, (CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} C _inst_1 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Presieve.functorPullback.{u2, u2, u3, u3} C _inst_1 D _inst_2 G (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (CategoryTheory.Sieve.pullback.{u2, u3} D _inst_2 (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Opposite.unop.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y))) (Quiver.Hom.unop.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U))) (CategoryTheory.Comma.left.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (Prefunctor.obj.{succ u2, succ u2, u3, 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))) (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Comma.hom.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) S))) (CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J G ℱ X U S x Y) y) -> (Eq.{max (succ u3) (succ u2)} (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (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))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.id.{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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} C (Opposite.unop.{succ u3} C (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)))) y (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Y))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_uniqueₓ'. -/
 theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
     (H : (pulledbackFamily ℱ S x Y).IsAmalgamation y) : y = getSection hu ℱ hS hx Y :=
   by
@@ -176,6 +220,12 @@ theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
   · exact ℱ.2 X _ (hu.cover_lift (K.pullback_stable Y.hom.unop hS))
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute -> CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) {Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)} {Z : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)} (f : Quiver.Hom.{succ u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) Y Z), Eq.{succ (max u3 u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z)) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Y) (CategoryTheory.Functor.map.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z) (CategoryTheory.CommaMorphism.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y Z f))) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Z)
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) {Y : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)} {Z : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)} (f : Quiver.Hom.{succ u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) Y Z), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y)) (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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z)) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Y) (Prefunctor.map.{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))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3 (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y) (CategoryTheory.Comma.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Z) (CategoryTheory.CommaMorphism.right.{u2, u2, u2, u2, u3, u3} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U)) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) Y Z f))) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx Z)
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commuteₓ'. -/
 @[simp]
 theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
     getSection hu ℱ hS hx Y ≫ ℱ.val.map f.right = getSection hu ℱ hS hx Z :=
@@ -196,6 +246,12 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
     simpa only [functor.map_comp, category.assoc] using hV'
 #align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone -> CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (CategoryTheory.Limits.Cone.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)))))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (CategoryTheory.Limits.Cone.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitConeₓ'. -/
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
   { pt
@@ -204,16 +260,34 @@ def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
         naturality' := fun Y Z f => by tidy } }
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app -> CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (W : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), Eq.{succ (max u3 u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, u1, max u2 (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) W) (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) W)) (CategoryTheory.NatTrans.app.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, u1, max u2 (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.Limits.Cone.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)) W) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, u1, max u2 (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) W) U S hS x hx W)
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (W : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (Prefunctor.obj.{succ u2, succ (max u3 u2), max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), u1, max (max u3 u2) u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, u1, max (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3)) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)))) W) (Prefunctor.obj.{succ u2, succ (max u3 u2), max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U))) W)) (CategoryTheory.NatTrans.app.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), u1, max (max u3 u2) u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, u1, max (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3)) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.Limits.Cone.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)) W) (CategoryTheory.RanIsSheafOfCoverLifting.getSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx W)
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_appₓ'. -/
 @[simp]
 theorem gluedLimitCone_π_app (W) : (gluedLimitCone hu ℱ hS hx).π.app W = getSection hu ℱ hS hx W :=
   rfl
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection._proof_1.{u3, u2, u1} C D _inst_1 _inst_2 A _inst_3 _inst_4 G)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D U)))))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U}, (Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) -> (forall {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)}, (CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) -> (Quiver.Hom.{max (succ u3) (succ u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D U)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSectionₓ'. -/
 /-- The section obtained by passing `glued_limit_cone` into `category_theory.limits.limit.lift`. -/
 def gluedSection : X ⟶ ((ran G.op).obj ℱ.val).obj (op U) :=
   limit.lift _ (gluedLimitCone hu ℱ hS hx)
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSection
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.helper -> CategoryTheory.RanIsSheafOfCoverLifting.helper is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) {V : D} (f : Quiver.Hom.{succ u2, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) V U) (y : Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D V))) (W : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), (forall {V' : C} {fV : Quiver.Hom.{succ u2, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') V} (hV : CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') V U fV f)), Eq.{succ (max u3 u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V')))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D V)) (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V'))) y (CategoryTheory.Functor.map.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D V) (Opposite.op.{succ u3} D (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V')) (Quiver.Hom.op.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') V fV))) (x (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (CategoryTheory.Functor.obj.{u2, u2, u3, u3} C _inst_1 D _inst_2 G V') V U fV f) hV)) -> (Eq.{succ (max u3 u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) W)) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Opposite.op.{succ u3} D V)) (CategoryTheory.Functor.obj.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) W) y (CategoryTheory.Limits.limit.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) (CategoryTheory.ran._proof_1.{u3, u3, u1, u2, u2, max u3 u2} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) W)) (CategoryTheory.NatTrans.app.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, u1, max u2 (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.Limits.Cone.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)) (CategoryTheory.Functor.obj.{u2, u2, max u3 u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.category.{u2, u3, u3, u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.map.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (Quiver.Hom.op.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) V U f)) W)))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) {V : D} (f : Quiver.Hom.{succ u2, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) V U) (y : Quiver.Hom.{max (succ u3) (succ u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D V))) (W : CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)), (forall {V' : C} {fV : Quiver.Hom.{succ u2, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') V} (hV : CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') V U fV f)), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V')))) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D V)) (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V'))) y (Prefunctor.map.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D V) (Opposite.op.{succ u3} D (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V')) (Quiver.Hom.op.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') V fV))) (x (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') (CategoryTheory.CategoryStruct.comp.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2) (Prefunctor.obj.{succ u2, succ u2, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) V') V U fV f) hV)) -> (Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{succ (max u3 u2), u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) X (Prefunctor.obj.{succ u2, succ (max u3 u2), max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V))) W)) (CategoryTheory.CategoryStruct.comp.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3) X (Prefunctor.obj.{succ u2, max (succ u3) (succ u2), u3, u1} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ))) (Opposite.op.{succ u3} D V)) (Prefunctor.obj.{succ u2, succ (max u3 u2), max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u2} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V))) W) y (CategoryTheory.Limits.limit.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V)) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u2, max u3 u2, max u3 u2, u1} A _inst_3 (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G (Opposite.op.{succ u3} D V)) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D V))) W)) (CategoryTheory.NatTrans.app.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), u1, max (max u3 u2) u1} A (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} A (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} A _inst_3)) (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, u1, max (max u3 u2) u1} A _inst_3 (CategoryTheory.Functor.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3) (CategoryTheory.Functor.const.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3)) (CategoryTheory.Limits.Cone.pt.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))) (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.Limits.Cone.π.{u2, max u3 u2, max u3 u2, u1} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) A _inst_3 (CategoryTheory.Ran.diagram.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ) (Opposite.op.{succ u3} D U)) (CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx)) (Prefunctor.obj.{succ u2, succ u2, max u2 u3, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.Category.toCategoryStruct.{u2, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u2 u3, max u2 u3} (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.instCategoryStructuredArrow.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G)) (CategoryTheory.StructuredArrow.map.{u2, u2, u3, u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) (Opposite.op.{succ u3} D U) (Opposite.op.{succ u3} D V) (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (Quiver.Hom.op.{u3, succ u2} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} D (CategoryTheory.Category.toCategoryStruct.{u2, u3} D _inst_2)) V U f))) W)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helperₓ'. -/
 /--
 A helper lemma for the following two lemmas. Basically stating that if the section `y : X ⟶ 𝒢(V)`
 coincides with `x` on `G(V')` for all `G(V') ⊆ V ∈ S`, then `X ⟶ 𝒢(V) ⟶ ℱ(W)` is indeed the
@@ -248,6 +322,12 @@ theorem helper {V} (f : V ⟶ U) (y : X ⟶ ((ran G.op).obj ℱ.val).obj (op V))
   simp only [Quiver.Hom.unop_op, functor.op_map, Quiver.Hom.op_unop]
 #align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helper
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x), CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx)
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x), CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx)
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamationₓ'. -/
 /-- Verify that the `glued_section` is an amalgamation of `x`. -/
 theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS hx) :=
   by
@@ -262,6 +342,12 @@ theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS h
   simp only [op_id, functor_to_types.map_id_apply]
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique -> CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.Mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.hasMem.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ (max u3 u2))} (CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) (fun (_x : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2) => forall (X : D), Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 X)) (CategoryTheory.GrothendieckTopology.hasCoeToFun.{u2, u3} D _inst_2) K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (y : CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} D U)), (CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x y) -> (Eq.{succ (max u3 u2)} (CategoryTheory.Functor.obj.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (CategoryTheory.Functor.obj.{max u3 u2, max u1 u3 u2, u1, max (max u3 u2) u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3) (Opposite.op.{succ u1} A X))) (Opposite.op.{succ u3} D U)) y (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ (Opposite.unop.{succ u1} A (Opposite.op.{succ u1} A X)) U S hS x hx))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2} (hu : CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3) {X : A} {U : D} {S : CategoryTheory.Sieve.{u2, u3} D _inst_2 U} (hS : Membership.mem.{max u3 u2, max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U) (Set.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) (Set.instMembershipSet.{max u3 u2} (CategoryTheory.Sieve.{u2, u3} D _inst_2 U)) S (CategoryTheory.GrothendieckTopology.sieves.{u2, u3} D _inst_2 K U)) {x : CategoryTheory.Presieve.FamilyOfElements.{max u3 u2, u2, u3} D _inst_2 U (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S)} (hx : CategoryTheory.Presieve.FamilyOfElements.Compatible.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x) (y : Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} D U)), (CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.{max u3 u2, u2, u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X))) U (CategoryTheory.Sieve.arrows.{u2, u3} D _inst_2 U S) x y) -> (Eq.{max (succ u3) (succ u2)} (Prefunctor.obj.{succ u2, succ (max u3 u2), u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.toCategoryStruct.{u2, u3} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2))) Type.{max u3 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} Type.{max u3 u2} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.toPrefunctor.{u2, max u3 u2, u3, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, succ (max u3 u2)} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)) (Prefunctor.obj.{succ (max u3 u2), max (succ u1) (succ (max u3 u2)), u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, u1} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max u1 (succ (max u3 u2))} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u1 u3 u2, u1, max u1 (succ (max u3 u2))} (Opposite.{succ u1} A) (CategoryTheory.Category.opposite.{max u3 u2, u1} A _inst_3) (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, succ (max u3 u2)} A _inst_3 Type.{max u3 u2} CategoryTheory.types.{max u3 u2}) (CategoryTheory.coyoneda.{max u3 u2, u1} A _inst_3)) (Opposite.op.{succ u1} A X)))) (Opposite.op.{succ u3} D U)) y (CategoryTheory.RanIsSheafOfCoverLifting.gluedSection.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 J K G hu ℱ X U S hS x hx))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_uniqueₓ'. -/
 /-- Verify that the amalgamation is indeed unique. -/
 theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection hu ℱ hS hx :=
   by
@@ -277,6 +363,12 @@ theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection
 
 end RanIsSheafOfCoverLifting
 
+/- warning: category_theory.Ran_is_sheaf_of_cover_lifting -> CategoryTheory.ran_isSheaf_of_coverLifting is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3), CategoryTheory.Presheaf.IsSheaf.{u2, max u3 u2, u3, u1} D _inst_2 A _inst_3 K (CategoryTheory.Functor.obj.{max u3 u2, max u3 u2, max u2 (max u3 u2) u3 u1, max u2 (max u3 u2) u3 u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.ran_isSheaf_of_coverLifting.CategoryTheory.Limits.hasLimitsOfShape.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)))
+but is expected to have type
+  forall {C : Type.{u3}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] [_inst_2 : CategoryTheory.Category.{u2, u3} D] {A : Type.{u1}} [_inst_3 : CategoryTheory.Category.{max u3 u2, u1} A] [_inst_4 : CategoryTheory.Limits.HasLimits.{max u3 u2, u1} A _inst_3] {J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1} {K : CategoryTheory.GrothendieckTopology.{u2, u3} D _inst_2} {G : CategoryTheory.Functor.{u2, u2, u3, u3} C _inst_1 D _inst_2}, (CategoryTheory.CoverLifting.{u3, u2, u3, u2} C _inst_1 D _inst_2 J K G) -> (forall (ℱ : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3), CategoryTheory.Presheaf.IsSheaf.{u2, max u3 u2, u3, u1} D _inst_2 A _inst_3 K (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), max (max u3 u2) u1, 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) A _inst_3) (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) A _inst_3) (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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, 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) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) A _inst_3) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} D) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) A _inst_3) (CategoryTheory.ran.{u2, u2, max u3 u2, u3, u3, u1} (Opposite.{succ u3} C) (Opposite.{succ u3} D) A (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) (CategoryTheory.Category.opposite.{u2, u3} D _inst_2) _inst_3 (CategoryTheory.Functor.op.{u2, u2, u3, u3} C _inst_1 D _inst_2 G) (fun (X : Opposite.{succ u3} D) => CategoryTheory.RanIsSheafOfCoverLifting.instHasLimitsOfShapeStructuredArrowOppositeOppositeOpInstCategoryStructuredArrow.{u1, u2, u3} C D _inst_1 _inst_2 A _inst_3 _inst_4 G X))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J A _inst_3 ℱ)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Ran_is_sheaf_of_cover_lifting CategoryTheory.ran_isSheaf_of_coverLiftingₓ'. -/
 /-- If `G` is cover_lifting, then `Ran G.op` pushes sheaves to sheaves.
 
 This result is basically https://stacks.math.columbia.edu/tag/00XK,
@@ -295,6 +387,7 @@ theorem ran_isSheaf_of_coverLifting {G : C ⥤ D} (hG : CoverLifting J K G) (ℱ
 
 variable (A)
 
+#print CategoryTheory.Sites.copullback /-
 /-- A cover-lifting functor induces a morphism of sites in the same direction as the functor. -/
 def Sites.copullback {G : C ⥤ D} (hG : CoverLifting J K G) : Sheaf J A ⥤ Sheaf K A
     where
@@ -303,7 +396,9 @@ def Sites.copullback {G : C ⥤ D} (hG : CoverLifting J K G) : Sheaf J A ⥤ She
   map_id' ℱ := Sheaf.Hom.ext _ _ <| (ran G.op).map_id ℱ.val
   map_comp' _ _ _ f g := Sheaf.Hom.ext _ _ <| (ran G.op).map_comp f.val g.val
 #align category_theory.sites.copullback CategoryTheory.Sites.copullback
+-/
 
+#print CategoryTheory.Sites.pullbackCopullbackAdjunction /-
 /--
 Given a functor between sites that is cover-preserving, cover-lifting, and compatible-preserving,
 the pullback and copullback along `G` are adjoint to each other
@@ -339,6 +434,7 @@ noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPr
     ext1
     apply (Ran.adjunction A G.op).homEquiv_counit
 #align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Sites.pullbackCopullbackAdjunction
+-/
 
 end CategoryTheory
 
Diff
@@ -139,13 +139,13 @@ variable (hx : x.Compatible)
 /-- The family of morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` defined on `{ Y' ⊆ Y : G(Y') ⊆ U ∈ S}`. -/
 def pulledbackFamily (Y : StructuredArrow (op U) G.op) :=
   ((x.pullback Y.Hom.unop).functorPullback G).compPresheafMap
-    (show _ ⟶ _ from whiskerRight ((ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X)))
+    (show _ ⟶ _ from whiskerRight ((Ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X)))
 #align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily
 
 @[simp]
 theorem pulledbackFamily_apply (Y : StructuredArrow (op U) G.op) {W} {f : W ⟶ _} (Hf) :
     pulledbackFamily ℱ S x Y f Hf =
-      x (G.map f ≫ Y.Hom.unop) Hf ≫ ((ran.adjunction A G.op).counit.app ℱ.val).app (op W) :=
+      x (G.map f ≫ Y.Hom.unop) Hf ≫ ((Ran.adjunction A G.op).counit.app ℱ.val).app (op W) :=
   rfl
 #align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply
 
@@ -314,8 +314,8 @@ noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPr
     Sites.pullback A Hc Hp ⊣ Sites.copullback A Hl
     where
   homEquiv X Y :=
-    { toFun := fun f => ⟨(ran.adjunction A G.op).homEquiv X.val Y.val f.val⟩
-      invFun := fun f => ⟨((ran.adjunction A G.op).homEquiv X.val Y.val).symm f.val⟩
+    { toFun := fun f => ⟨(Ran.adjunction A G.op).homEquiv X.val Y.val f.val⟩
+      invFun := fun f => ⟨((Ran.adjunction A G.op).homEquiv X.val Y.val).symm f.val⟩
       left_inv := fun f => by
         ext1
         dsimp
@@ -325,13 +325,13 @@ noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPr
         dsimp
         rw [Equiv.apply_symm_apply] }
   Unit :=
-    { app := fun X => ⟨(ran.adjunction A G.op).Unit.app X.val⟩
+    { app := fun X => ⟨(Ran.adjunction A G.op).Unit.app X.val⟩
       naturality' := fun _ _ f =>
-        Sheaf.Hom.ext _ _ <| (ran.adjunction A G.op).Unit.naturality f.val }
+        Sheaf.Hom.ext _ _ <| (Ran.adjunction A G.op).Unit.naturality f.val }
   counit :=
-    { app := fun X => ⟨(ran.adjunction A G.op).counit.app X.val⟩
+    { app := fun X => ⟨(Ran.adjunction A G.op).counit.app X.val⟩
       naturality' := fun _ _ f =>
-        Sheaf.Hom.ext _ _ <| (ran.adjunction A G.op).counit.naturality f.val }
+        Sheaf.Hom.ext _ _ <| (Ran.adjunction A G.op).counit.naturality f.val }
   homEquiv_unit X Y f := by
     ext1
     apply (Ran.adjunction A G.op).homEquiv_unit
Diff
@@ -80,17 +80,17 @@ structure CoverLifting (G : C ⥤ D) : Prop where
 #align category_theory.cover_lifting CategoryTheory.CoverLifting
 
 /-- The identity functor on a site is cover-lifting. -/
-theorem id_coverLifting : CoverLifting J J (𝟭 _) :=
+theorem idCoverLifting : CoverLifting J J (𝟭 _) :=
   ⟨fun _ _ h => by simpa using h⟩
-#align category_theory.id_cover_lifting CategoryTheory.id_coverLifting
+#align category_theory.id_cover_lifting CategoryTheory.idCoverLifting
 
 variable {J K}
 
 /-- The composition of two cover-lifting functors are cover-lifting -/
-theorem comp_coverLifting {F : C ⥤ D} (hu : CoverLifting J K F) {G : D ⥤ E}
+theorem compCoverLifting {F : C ⥤ D} (hu : CoverLifting J K F) {G : D ⥤ E}
     (hv : CoverLifting K L G) : CoverLifting J L (F ⋙ G) :=
   ⟨fun _ S h => hu.cover_lift (hv.cover_lift h)⟩
-#align category_theory.comp_cover_lifting CategoryTheory.comp_coverLifting
+#align category_theory.comp_cover_lifting CategoryTheory.compCoverLifting
 
 end CoverLifting
 
Diff
@@ -129,7 +129,7 @@ variable {G : C ⥤ D} (hu : CoverLifting J K G) (ℱ : Sheaf J A)
 variable {X : A} {U : D} (S : Sieve U) (hS : S ∈ K U)
 
 instance (X : Dᵒᵖ) : HasLimitsOfShape (StructuredArrow X G.op) A :=
-  haveI := Limits.hasLimitsOfSize_shrink.{v, max u v, max u v, max u v} A
+  haveI := Limits.hasLimitsOfSizeShrink.{v, max u v, max u v, max u v} A
   has_limits_of_size.has_limits_of_shape _
 
 variable (x : S.arrows.FamilyOfElements ((ran G.op).obj ℱ.val ⋙ coyoneda.obj (op X)))
@@ -198,7 +198,7 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
 
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
-  { x
+  { pt
     π :=
       { app := fun Y => getSection hu ℱ hS hx Y
         naturality' := fun Y Z f => by tidy } }
Diff
@@ -129,7 +129,7 @@ variable {G : C ⥤ D} (hu : CoverLifting J K G) (ℱ : Sheaf J A)
 variable {X : A} {U : D} (S : Sieve U) (hS : S ∈ K U)
 
 instance (X : Dᵒᵖ) : HasLimitsOfShape (StructuredArrow X G.op) A :=
-  haveI := Limits.hasLimitsOfSizeShrink.{v, max u v, max u v, max u v} A
+  haveI := Limits.hasLimitsOfSize_shrink.{v, max u v, max u v, max u v} A
   has_limits_of_size.has_limits_of_shape _
 
 variable (x : S.arrows.FamilyOfElements ((ran G.op).obj ℱ.val ⋙ coyoneda.obj (op X)))

Changes in mathlib4

mathlib3
mathlib4
feat: FastSubsingleton and FastIsEmpty to speed up congr!/convert (#12495)

This is a PR that's a temporary measure to improve performance of congr!/convert, and the implementation may change in a future PR with a new version of congr!.

Introduces two typeclasses that are meant to quickly evaluate in common cases of Subsingleton and IsEmpty. Makes congr! use these typeclasses rather than Subsingleton.

Local Subsingleton/IsEmpty instances are included as Fast instances. To get congr!/convert to reason about subsingleton types, you can add such instances to the local context. Or, you can apply Subsingleton.elim yourself.

Zulip discussion

Diff
@@ -179,7 +179,7 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
   apply getSection_is_unique
   intro V' fV' hV'
   have eq : Z.hom = Y.hom ≫ (G.map f.right.unop).op := by
-    convert f.w
+    convert f.w using 1
     erw [Category.id_comp]
   rw [eq] at hV'
   convert getSection_isAmalgamation ℱ hS hx Y (fV' ≫ f.right.unop) _ using 1
chore(CategoryTheory): make Functor.Full a Prop (#12449)

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

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

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

Diff
@@ -386,7 +386,7 @@ lemma Functor.toSheafify_pullbackSheafificationCompatibility (F : Dᵒᵖ ⥤ A)
   apply Quiver.Hom.op_inj
   apply coyoneda.map_injective
   ext E : 2
-  dsimp [Functor.preimage, Full.preimage, coyoneda, Adjunction.leftAdjointsCoyonedaEquiv]
+  dsimp [Functor.preimage, Coyoneda.preimage, coyoneda, Adjunction.leftAdjointsCoyonedaEquiv]
   erw [Adjunction.homEquiv_unit, Adjunction.homEquiv_counit]
   dsimp [Adjunction.comp]
   simp only [Category.comp_id, map_id, whiskerLeft_id', map_comp, Sheaf.instCategorySheaf_comp_val,
chore: classify porting notes referring to missing linters (#12098)

Reference the newly created issues #12094 and #12096, as well as the pre-existing #5171. Change all references to #10927 to #5171. Some of these changes were not labelled as "porting note"; change this for good measure.

Diff
@@ -69,7 +69,7 @@ variable {L : GrothendieckTopology E}
 /-- A functor `G : (C, J) ⥤ (D, K)` between sites is called cocontinuous (SGA 4 III 2.1)
 if for all covering sieves `R` in `D`, `R.pullback G` is a covering sieve in `C`.
 -/
--- Porting note: removed `@[nolint has_nonempty_instance]`
+-- Porting note(#5171): removed `@[nolint has_nonempty_instance]`
 class Functor.IsCocontinuous : Prop where
   cover_lift : ∀ {U : C} {S : Sieve (G.obj U)} (_ : S ∈ K (G.obj U)), S.functorPullback G ∈ J U
 #align category_theory.cover_lifting CategoryTheory.Functor.IsCocontinuous
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
@@ -64,7 +64,6 @@ variable {C : Type*} [Category C] {D : Type*} [Category D] {E : Type*} [Category
   (G' : D ⥤ E)
 
 variable (J : GrothendieckTopology C) (K : GrothendieckTopology D)
-
 variable {L : GrothendieckTopology E}
 
 /-- A functor `G : (C, J) ⥤ (D, K)` between sites is called cocontinuous (SGA 4 III 2.1)
@@ -116,9 +115,7 @@ A `X ⟶ 𝒢(U)`. The remaining work is to verify that this is indeed the amalg
 
 
 variable {C D : Type u} [Category.{v} C] [Category.{v} D] (G : C ⥤ D)
-
 variable {A : Type w} [Category.{max u v} A] [HasLimits A]
-
 variable {J : GrothendieckTopology C} {K : GrothendieckTopology D}
   [G.IsCocontinuous J K]
 
@@ -126,7 +123,6 @@ namespace RanIsSheafOfIsCocontinuous
 
 variable {G}
 variable (ℱ : Sheaf J A)
-
 variable {X : A} {U : D} (S : Sieve U) (hS : S ∈ K U)
 
 instance (X : Dᵒᵖ) : HasLimitsOfShape (StructuredArrow X G.op) A :=
@@ -134,7 +130,6 @@ instance (X : Dᵒᵖ) : HasLimitsOfShape (StructuredArrow X G.op) A :=
   HasLimitsOfSize.has_limits_of_shape _
 
 variable (x : S.arrows.FamilyOfElements ((ran G.op).obj ℱ.val ⋙ coyoneda.obj (op X)))
-
 variable (hx : x.Compatible)
 
 /-- The family of morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` defined on `{ Y' ⊆ Y : G(Y') ⊆ U ∈ S}`. -/
chore: replace remaining lambda syntax (#11405)

Includes some doc comments and real code: this is exhaustive, with two exceptions:

  • some files are handled in #11409 instead
  • I left FunProp/{ToStd,RefinedDiscTree}.lean, Tactic/NormNum and Tactic/Simps alone, as these seem likely enough to end up in std.

Follow-up to #11301, much shorter this time.

Diff
@@ -258,7 +258,7 @@ theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection ℱ hS hx)
   -- Porting note: next line was `ext W`
   -- Now `ext` can't see that `ran` is defined as a limit.
   -- See https://github.com/leanprover-community/mathlib4/issues/5229
-  refine limit.hom_ext (λ (W : StructuredArrow (op V) G.op) => ?_)
+  refine limit.hom_ext (fun (W : StructuredArrow (op V) G.op) ↦ ?_)
   simp only [Functor.comp_map, limit.lift_pre, coyoneda_obj_map, ran_obj_map, gluedSection]
   erw [limit.lift_π]
   symm
@@ -275,7 +275,7 @@ theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection
   -- Porting note: next line was `ext W`
   -- Now `ext` can't see that `ran` is defined as a limit.
   -- See https://github.com/leanprover-community/mathlib4/issues/5229
-  refine limit.hom_ext (λ (W : StructuredArrow (op U) G.op) => ?_)
+  refine limit.hom_ext (fun (W : StructuredArrow (op U) G.op) ↦ ?_)
   erw [limit.lift_π]
   convert helper ℱ hS hx (𝟙 _) y W _
   · simp only [op_id, StructuredArrow.map_id]
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
@@ -70,7 +70,7 @@ variable {L : GrothendieckTopology E}
 /-- A functor `G : (C, J) ⥤ (D, K)` between sites is called cocontinuous (SGA 4 III 2.1)
 if for all covering sieves `R` in `D`, `R.pullback G` is a covering sieve in `C`.
 -/
--- porting note: removed `@[nolint has_nonempty_instance]`
+-- Porting note: removed `@[nolint has_nonempty_instance]`
 class Functor.IsCocontinuous : Prop where
   cover_lift : ∀ {U : C} {S : Sieve (G.obj U)} (_ : S ∈ K (G.obj U)), S.functorPullback G ∈ J U
 #align category_theory.cover_lifting CategoryTheory.Functor.IsCocontinuous
@@ -189,7 +189,7 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
   rw [eq] at hV'
   convert getSection_isAmalgamation ℱ hS hx Y (fV' ≫ f.right.unop) _ using 1
   · aesop_cat
-  -- porting note: the below proof was mildly rewritten because `simp` changed behaviour
+  -- Porting note: the below proof was mildly rewritten because `simp` changed behaviour
   -- slightly (a rewrite which seemed to work in Lean 3, didn't work in Lean 4 because of
   -- motive is not type correct issues)
   · rw [pulledbackFamily_apply, pulledbackFamily_apply]
@@ -202,7 +202,7 @@ set_option linter.uppercaseLean3 false in
 
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
-  { pt := X -- porting note: autoporter got this wrong
+  { pt := X -- Porting note: autoporter got this wrong
     π := { app := fun Y => getSection ℱ hS hx Y } }
 set_option linter.uppercaseLean3 false in
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone
@@ -255,7 +255,7 @@ set_option linter.uppercaseLean3 false in
 /-- Verify that the `glued_section` is an amalgamation of `x`. -/
 theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection ℱ hS hx) := by
   intro V fV hV
-  -- porting note: next line was `ext W`
+  -- Porting note: next line was `ext W`
   -- Now `ext` can't see that `ran` is defined as a limit.
   -- See https://github.com/leanprover-community/mathlib4/issues/5229
   refine limit.hom_ext (λ (W : StructuredArrow (op V) G.op) => ?_)
@@ -272,7 +272,7 @@ set_option linter.uppercaseLean3 false in
 /-- Verify that the amalgamation is indeed unique. -/
 theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection ℱ hS hx := by
   unfold gluedSection limit.lift
-  -- porting note: next line was `ext W`
+  -- Porting note: next line was `ext W`
   -- Now `ext` can't see that `ran` is defined as a limit.
   -- See https://github.com/leanprover-community/mathlib4/issues/5229
   refine limit.hom_ext (λ (W : StructuredArrow (op U) G.op) => ?_)
@@ -356,11 +356,11 @@ noncomputable def Functor.sheafAdjunctionCocontinuous [G.IsCocontinuous J K]
       naturality := fun _ _ f =>
         Sheaf.Hom.ext _ _ <| (Ran.adjunction A G.op).counit.naturality f.val }
   homEquiv_unit := by
-    -- porting note: next line was `ext1`
+    -- Porting note: next line was `ext1`
     refine Sheaf.Hom.ext _ _ ?_
     apply (Ran.adjunction A G.op).homEquiv_unit
   homEquiv_counit := by
-    -- porting note: next line was `ext1`
+    -- Porting note: next line was `ext1`
     refine Sheaf.Hom.ext _ _ ?_
     apply (Ran.adjunction A G.op).homEquiv_counit
 #align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Functor.sheafAdjunctionCocontinuous
chore: remove useless include and omit porting notes (#10503)
Diff
@@ -154,9 +154,6 @@ set_option linter.uppercaseLean3 false in
 
 variable {x} {S}
 
--- porting note: no longer needed
--- include hu hS hx
-
 /-- Given a `G(Y) ⊆ U`, we can find a unique section `X ⟶ ℱ(Y)` that agrees with `x`. -/
 def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right := by
   letI hom_sh := whiskerRight ((Ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X))
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
@@ -3,9 +3,9 @@ Copyright (c) 2021 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
 -/
-import Mathlib.CategoryTheory.Sites.ConcreteSheafification
 import Mathlib.CategoryTheory.Limits.KanExtension
 import Mathlib.CategoryTheory.Sites.CoverPreserving
+import Mathlib.CategoryTheory.Sites.Sheafification
 
 #align_import category_theory.sites.cover_lifting from "leanprover-community/mathlib"@"14b69e9f3c16630440a2cbd46f1ddad0d561dee7"
 
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
@@ -369,13 +369,7 @@ noncomputable def Functor.sheafAdjunctionCocontinuous [G.IsCocontinuous J K]
 #align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Functor.sheafAdjunctionCocontinuous
 
 variable
-  [ConcreteCategory.{max v u} A]
-  [PreservesLimits (forget A)]
-  [ReflectsIsomorphisms (forget A)]
-  [∀ (X : C), PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget A)]
-  [∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ A]
-  [∀ (X : D), PreservesColimitsOfShape (K.Cover X)ᵒᵖ (forget A)]
-  [∀ (X : D), HasColimitsOfShape (K.Cover X)ᵒᵖ A]
+  [HasWeakSheafify J A] [HasWeakSheafify K A]
   [G.IsCocontinuous J K] [G.IsContinuous J K]
 
 /-- The natural isomorphism exhibiting compatibility between pushforward and sheafification. -/
@@ -393,9 +387,9 @@ def Functor.pushforwardContinuousSheafificationCompatibility :
 /- Implementation: This is primarily used to prove the lemma
 `pullbackSheafificationCompatibility_hom_app_val`. -/
 lemma Functor.toSheafify_pullbackSheafificationCompatibility (F : Dᵒᵖ ⥤ A) :
-    J.toSheafify (G.op ⋙ F) ≫
+    toSheafify J (G.op ⋙ F) ≫
     ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val =
-    whiskerLeft _ (K.toSheafify _) := by
+    whiskerLeft _ (toSheafify K _) := by
   dsimp [pushforwardContinuousSheafificationCompatibility, Adjunction.leftAdjointUniq]
   apply Quiver.Hom.op_inj
   apply coyoneda.map_injective
@@ -403,25 +397,24 @@ lemma Functor.toSheafify_pullbackSheafificationCompatibility (F : Dᵒᵖ ⥤ A)
   dsimp [Functor.preimage, Full.preimage, coyoneda, Adjunction.leftAdjointsCoyonedaEquiv]
   erw [Adjunction.homEquiv_unit, Adjunction.homEquiv_counit]
   dsimp [Adjunction.comp]
-  simp only [sheafificationAdjunction_unit_app, Category.comp_id, Functor.map_id,
-    whiskerLeft_id', GrothendieckTopology.sheafifyMap_comp,
-    GrothendieckTopology.sheafifyMap_sheafifyLift, Category.id_comp,
-    Category.assoc, GrothendieckTopology.toSheafify_sheafifyLift]
+  simp only [Category.comp_id, map_id, whiskerLeft_id', map_comp, Sheaf.instCategorySheaf_comp_val,
+    sheafificationAdjunction_counit_app_val, sheafifyMap_sheafifyLift,
+    Category.id_comp, Category.assoc, toSheafify_sheafifyLift]
   ext t s : 3
   dsimp [sheafPushforwardContinuous]
   congr 1
   simp only [← Category.assoc]
   convert Category.id_comp (obj := A) _
   have := (Ran.adjunction A G.op).left_triangle
-  apply_fun (fun e => (e.app (K.sheafify F)).app s) at this
+  apply_fun (fun e => (e.app (sheafify K F)).app s) at this
   exact this
 
 @[simp]
 lemma Functor.pushforwardContinuousSheafificationCompatibility_hom_app_val (F : Dᵒᵖ ⥤ A) :
     ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val =
-    J.sheafifyLift (whiskerLeft G.op <| K.toSheafify F)
+    sheafifyLift J (whiskerLeft G.op <| toSheafify K F)
       ((presheafToSheaf K A ⋙ G.sheafPushforwardContinuous A J K).obj F).cond := by
-  apply J.sheafifyLift_unique
+  apply sheafifyLift_unique
   apply toSheafify_pullbackSheafificationCompatibility
 
 end CategoryTheory
refactor(CategoryTheory/Sites): rename Sheafification file (#9042)

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

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
 -/
-import Mathlib.CategoryTheory.Sites.Sheafification
+import Mathlib.CategoryTheory.Sites.ConcreteSheafification
 import Mathlib.CategoryTheory.Limits.KanExtension
 import Mathlib.CategoryTheory.Sites.CoverPreserving
 
refactor(CategoryTheory/Sites): continuous functors (#8408)

This PR introduces the typeclass Functor.IsContinuous which says that the precomposition with a functor preserves the sheaf condition for Grothendieck topologies. It slightly refactors the previous main theorem about CoverPreserving and CompatiblePreserving functors: it now states that such functors are continuous. The pushforward functor for a continuous functor is defined under the Functor.IsContinuous assumption rather than the combination of both CoverPreserving and CompatiblePreserving. The property CoverLifting is renamed IsCocontinuous and it is made a class. The property IsCoverDense is also made a class.

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

Diff
@@ -10,30 +10,28 @@ import Mathlib.CategoryTheory.Sites.CoverPreserving
 #align_import category_theory.sites.cover_lifting from "leanprover-community/mathlib"@"14b69e9f3c16630440a2cbd46f1ddad0d561dee7"
 
 /-!
-# Cover-lifting functors between sites.
+# Cocontinuous functors between sites.
 
-We define cover-lifting functors between sites as functors that pull covering sieves back to
-covering sieves. This concept is also known as *cocontinuous functors* or
-*cover-reflecting functors*, but we have chosen this name following [MM92] in order to avoid
-potential naming collision or confusion with the general definition of cocontinuous functors
-between categories as functors preserving small colimits.
-
-The definition given here seems stronger than the definition found elsewhere,
-but they are actually equivalent via `CategoryTheory.GrothendieckTopology.superset_covering`.
-(The precise statement is not formalized, but follows from it quite trivially).
+We define cocontinuous functors between sites as functors that pull covering sieves back to
+covering sieves. This concept is also known as *cover-lifting* or
+*cover-reflecting functors*. We use the original terminology and definition of SGA 4 III 2.1.
+However, the notion of cocontinuous functor should not be confused with
+the general definition of cocontinuous functors between categories as functors preserving
+small colimits.
 
 ## Main definitions
 
-* `CategoryTheory.CoverLifting`: a functor between sites is cover-lifting if it
+* `CategoryTheory.Functor.IsCocontinuous`: a functor between sites is cocontinuous if it
   pulls back covering sieves to covering sieves
-* `CategoryTheory.Sites.copullback`: A cover-lifting functor `G : (C, J) ⥤ (D, K)` induces a
-  morphism of sites in the same direction as the functor.
+* `CategoryTheory.Functor.sheafPushforwardCocontinuous`: A cocontinuous functor
+  `G : (C, J) ⥤ (D, K)` induces a functor `Sheaf J A ⥤ Sheaf K A`.
 
 ## Main results
-* `CategoryTheory.ran_isSheaf_of_coverLifting`: If `G : C ⥤ D` is cover_lifting, then
+* `CategoryTheory.ran_isSheaf_of_isCocontinuous`: If `G : C ⥤ D` is cocontinuous, then
   `Ran G.op` (`ₚu`) as a functor `(Cᵒᵖ ⥤ A) ⥤ (Dᵒᵖ ⥤ A)` of presheaves maps sheaves to sheaves.
-* `CategoryTheory.Sites.pullbackCopullbackAdjunction`: If `G : (C, J) ⥤ (D, K)` is cover-lifting,
-  cover-preserving, and compatible-preserving, then `pullback G` and `copullback G` are adjoint.
+* `CategoryTheory.Sites.pullbackCopullbackAdjunction`: If `G : (C, J) ⥤ (D, K)` is cocontinuous
+  and continuous, then `G.sheafPushforwardContinuous A J K` and
+  `G.sheafPushforwardCocontinuous A J K` are adjoint.
 
 ## References
 
@@ -60,40 +58,44 @@ open CategoryTheory.Limits
 
 namespace CategoryTheory
 
-section CoverLifting
+section IsCocontinuous
 
-variable {C : Type*} [Category C] {D : Type*} [Category D] {E : Type*} [Category E]
+variable {C : Type*} [Category C] {D : Type*} [Category D] {E : Type*} [Category E] (G : C ⥤ D)
+  (G' : D ⥤ E)
 
 variable (J : GrothendieckTopology C) (K : GrothendieckTopology D)
 
 variable {L : GrothendieckTopology E}
 
-/-- A functor `G : (C, J) ⥤ (D, K)` between sites is called to have the cover-lifting property
+/-- A functor `G : (C, J) ⥤ (D, K)` between sites is called cocontinuous (SGA 4 III 2.1)
 if for all covering sieves `R` in `D`, `R.pullback G` is a covering sieve in `C`.
 -/
 -- porting note: removed `@[nolint has_nonempty_instance]`
-structure CoverLifting (G : C ⥤ D) : Prop where
+class Functor.IsCocontinuous : Prop where
   cover_lift : ∀ {U : C} {S : Sieve (G.obj U)} (_ : S ∈ K (G.obj U)), S.functorPullback G ∈ J U
-#align category_theory.cover_lifting CategoryTheory.CoverLifting
+#align category_theory.cover_lifting CategoryTheory.Functor.IsCocontinuous
 
-/-- The identity functor on a site is cover-lifting. -/
-theorem idCoverLifting : CoverLifting J J (𝟭 _) :=
-  ⟨fun h => by simpa using h⟩
-#align category_theory.id_cover_lifting CategoryTheory.idCoverLifting
+lemma Functor.cover_lift [G.IsCocontinuous J K] {U : C} {S : Sieve (G.obj U)}
+    (hS : S ∈ K (G.obj U)) : S.functorPullback G ∈ J U :=
+  IsCocontinuous.cover_lift hS
 
-variable {J K}
+/-- The identity functor on a site is cocontinuous. -/
+instance isCocontinuous_id : Functor.IsCocontinuous (𝟭 C) J J :=
+  ⟨fun h => by simpa using h⟩
+#align category_theory.id_cover_lifting CategoryTheory.isCocontinuous_id
 
-/-- The composition of two cover-lifting functors are cover-lifting -/
-theorem compCoverLifting {F : C ⥤ D} (hu : CoverLifting J K F) {G : D ⥤ E}
-    (hv : CoverLifting K L G) : CoverLifting J L (F ⋙ G) :=
-  ⟨fun h => hu.cover_lift (hv.cover_lift h)⟩
-#align category_theory.comp_cover_lifting CategoryTheory.compCoverLifting
+/-- The composition of two cocontinuous functors is cocontinuous. -/
+theorem isCocontinuous_comp [G.IsCocontinuous J K] [G'.IsCocontinuous K L] :
+    (G ⋙ G').IsCocontinuous J L where
+  cover_lift h := G.cover_lift J K (G'.cover_lift K L h)
+#align category_theory.comp_cover_lifting CategoryTheory.isCocontinuous_comp
 
-end CoverLifting
+end IsCocontinuous
 
 /-!
-We will now prove that `Ran G.op` (`ₚu`) maps sheaves to sheaves if `G` is cover-lifting. This can
-be found in <https://stacks.math.columbia.edu/tag/00XK>. However, the proof given here uses the
+We will now prove that `Ran G.op` (`ₚu`) maps sheaves to sheaves if `G`
+is cocontinuous (SGA 4 III 2.2). This can also be be found in
+<https://stacks.math.columbia.edu/tag/00XK>. However, the proof given there uses the
 amalgamation definition of sheaves, and thus does not require that `C` or `D` has categorical
 pullbacks.
 
@@ -105,7 +107,7 @@ we can glue them into a morphism `X ⟶ 𝒢(U)`.
 Since the presheaf `𝒢 := (Ran G.op).obj ℱ.val` is defined via `𝒢(U) = lim_{G(V) ⊆ U} ℱ(V)`, for
 gluing the family `x` into a `X ⟶ 𝒢(U)`, it suffices to provide a `X ⟶ ℱ(Y)` for each
 `G(Y) ⊆ U`. This can be done since `{ Y' ⊆ Y : G(Y') ⊆ U ∈ S}` is a covering sieve for `Y` on
-`C` (by the cover-lifting property of `G`). Thus the morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` can be
+`C` (by the cocontinuity `G`). Thus the morphisms `X ⟶ 𝒢(G(Y')) ⟶ ℱ(Y')` can be
 glued into a morphism `X ⟶ ℱ(Y)`. This is done in `get_sections`.
 
 In `glued_limit_cone`, we verify these obtained sections are indeed compatible, and thus we obtain
@@ -113,15 +115,17 @@ A `X ⟶ 𝒢(U)`. The remaining work is to verify that this is indeed the amalg
 -/
 
 
-variable {C D : Type u} [Category.{v} C] [Category.{v} D]
+variable {C D : Type u} [Category.{v} C] [Category.{v} D] (G : C ⥤ D)
 
 variable {A : Type w} [Category.{max u v} A] [HasLimits A]
 
 variable {J : GrothendieckTopology C} {K : GrothendieckTopology D}
+  [G.IsCocontinuous J K]
 
-namespace RanIsSheafOfCoverLifting
+namespace RanIsSheafOfIsCocontinuous
 
-variable {G : C ⥤ D} (hu : CoverLifting J K G) (ℱ : Sheaf J A)
+variable {G}
+variable (ℱ : Sheaf J A)
 
 variable {X : A} {U : D} (S : Sieve U) (hS : S ∈ K U)
 
@@ -138,7 +142,7 @@ def pulledbackFamily (Y : StructuredArrow (op U) G.op) :=
   ((x.pullback Y.hom.unop).functorPullback G).compPresheafMap
     (show _ ⟶ _ from whiskerRight ((Ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X)))
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily
+#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily
 
 @[simp]
 theorem pulledbackFamily_apply (Y : StructuredArrow (op U) G.op) {W} {f : W ⟶ _} (Hf) :
@@ -146,7 +150,7 @@ theorem pulledbackFamily_apply (Y : StructuredArrow (op U) G.op) {W} {f : W ⟶
       x (G.map f ≫ Y.hom.unop) Hf ≫ ((Ran.adjunction A G.op).counit.app ℱ.val).app (op W) :=
   rfl
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfCoverLifting.pulledbackFamily_apply
+#align category_theory.Ran_is_sheaf_of_cover_lifting.pulledback_family_apply CategoryTheory.RanIsSheafOfIsCocontinuous.pulledbackFamily_apply
 
 variable {x} {S}
 
@@ -158,35 +162,35 @@ def getSection (Y : StructuredArrow (op U) G.op) : X ⟶ ℱ.val.obj Y.right :=
   letI hom_sh := whiskerRight ((Ran.adjunction A G.op).counit.app ℱ.val) (coyoneda.obj (op X))
   haveI S' := K.pullback_stable Y.hom.unop hS
   haveI hs' := ((hx.pullback Y.3.unop).functorPullback G).compPresheafMap hom_sh
-  exact (ℱ.2 X _ (hu.cover_lift S')).amalgamate _ hs'
+  exact (ℱ.2 X _ (G.cover_lift _ _ S')).amalgamate _ hs'
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfCoverLifting.getSection
+#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section CategoryTheory.RanIsSheafOfIsCocontinuous.getSection
 
 theorem getSection_isAmalgamation (Y : StructuredArrow (op U) G.op) :
-    (pulledbackFamily ℱ S x Y).IsAmalgamation (getSection hu ℱ hS hx Y) :=
+    (pulledbackFamily ℱ S x Y).IsAmalgamation (getSection ℱ hS hx Y) :=
   IsSheafFor.isAmalgamation _ _
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.getSection_isAmalgamation
+#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_amalgamation CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_isAmalgamation
 
 theorem getSection_is_unique (Y : StructuredArrow (op U) G.op) {y}
-    (H : (pulledbackFamily ℱ S x Y).IsAmalgamation y) : y = getSection hu ℱ hS hx Y := by
+    (H : (pulledbackFamily ℱ S x Y).IsAmalgamation y) : y = getSection ℱ hS hx Y := by
   apply IsSheafFor.isSeparatedFor _ (pulledbackFamily ℱ S x Y)
   · exact H
   · apply getSection_isAmalgamation
-  · exact ℱ.2 X _ (hu.cover_lift (K.pullback_stable Y.hom.unop hS))
+  · exact ℱ.2 X _ (G.cover_lift _ _ (K.pullback_stable Y.hom.unop hS))
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.getSection_is_unique
+#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_is_unique CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_is_unique
 
 @[simp]
 theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
-    getSection hu ℱ hS hx Y ≫ ℱ.val.map f.right = getSection hu ℱ hS hx Z := by
+    getSection ℱ hS hx Y ≫ ℱ.val.map f.right = getSection ℱ hS hx Z := by
   apply getSection_is_unique
   intro V' fV' hV'
   have eq : Z.hom = Y.hom ≫ (G.map f.right.unop).op := by
     convert f.w
     erw [Category.id_comp]
   rw [eq] at hV'
-  convert getSection_isAmalgamation hu ℱ hS hx Y (fV' ≫ f.right.unop) _ using 1
+  convert getSection_isAmalgamation ℱ hS hx Y (fV' ≫ f.right.unop) _ using 1
   · aesop_cat
   -- porting note: the below proof was mildly rewritten because `simp` changed behaviour
   -- slightly (a rewrite which seemed to work in Lean 3, didn't work in Lean 4 because of
@@ -197,26 +201,26 @@ theorem getSection_commute {Y Z : StructuredArrow (op U) G.op} (f : Y ⟶ Z) :
     · change S (G.map _ ≫ Y.hom.unop)
       simpa only [Functor.map_comp, Category.assoc] using hV'
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfCoverLifting.getSection_commute
+#align category_theory.Ran_is_sheaf_of_cover_lifting.get_section_commute CategoryTheory.RanIsSheafOfIsCocontinuous.getSection_commute
 
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
   { pt := X -- porting note: autoporter got this wrong
-    π := { app := fun Y => getSection hu ℱ hS hx Y } }
+    π := { app := fun Y => getSection ℱ hS hx Y } }
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone
 
 @[simp]
-theorem gluedLimitCone_π_app (W) : (gluedLimitCone hu ℱ hS hx).π.app W = getSection hu ℱ hS hx W :=
+theorem gluedLimitCone_π_app (W) : (gluedLimitCone ℱ hS hx).π.app W = getSection ℱ hS hx W :=
   rfl
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfIsCocontinuous.gluedLimitCone_π_app
 
 /-- The section obtained by passing `glued_limit_cone` into `CategoryTheory.Limits.limit.lift`. -/
 def gluedSection : X ⟶ ((ran G.op).obj ℱ.val).obj (op U) :=
-  limit.lift _ (gluedLimitCone hu ℱ hS hx)
+  limit.lift _ (gluedLimitCone ℱ hS hx)
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfCoverLifting.gluedSection
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection
 
 /--
 A helper lemma for the following two lemmas. Basically stating that if the section `y : X ⟶ 𝒢(V)`
@@ -227,9 +231,9 @@ in order to be applied in the following lemmas easier.
 theorem helper {V} (f : V ⟶ U) (y : X ⟶ ((ran G.op).obj ℱ.val).obj (op V)) (W)
     (H : ∀ {V'} {fV : G.obj V' ⟶ V} (hV), y ≫ ((ran G.op).obj ℱ.val).map fV.op = x (fV ≫ f) hV) :
     y ≫ limit.π (Ran.diagram G.op ℱ.val (op V)) W =
-      (gluedLimitCone hu ℱ hS hx).π.app ((StructuredArrow.map f.op).obj W) := by
+      (gluedLimitCone ℱ hS hx).π.app ((StructuredArrow.map f.op).obj W) := by
   dsimp only [gluedLimitCone_π_app]
-  apply getSection_is_unique hu ℱ hS hx ((StructuredArrow.map f.op).obj W)
+  apply getSection_is_unique ℱ hS hx ((StructuredArrow.map f.op).obj W)
   intro V' fV' hV'
   dsimp only [Ran.adjunction, Ran.equiv, pulledbackFamily_apply]
   erw [Adjunction.adjunctionOfEquivRight_counit_app]
@@ -249,10 +253,10 @@ theorem helper {V} (f : V ⟶ U) (y : X ⟶ ((ran G.op).obj ℱ.val).obj (op V))
   erw [Category.comp_id]
   simp only [Quiver.Hom.unop_op, Functor.op_map, Quiver.Hom.op_unop]
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfCoverLifting.helper
+#align category_theory.Ran_is_sheaf_of_cover_lifting.helper CategoryTheory.RanIsSheafOfIsCocontinuous.helper
 
 /-- Verify that the `glued_section` is an amalgamation of `x`. -/
-theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS hx) := by
+theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection ℱ hS hx) := by
   intro V fV hV
   -- porting note: next line was `ext W`
   -- Now `ext` can't see that `ran` is defined as a limit.
@@ -261,65 +265,80 @@ theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS h
   simp only [Functor.comp_map, limit.lift_pre, coyoneda_obj_map, ran_obj_map, gluedSection]
   erw [limit.lift_π]
   symm
-  convert helper hu ℱ hS hx _ (x fV hV) _ _ using 1
+  convert helper ℱ hS hx _ (x fV hV) _ _ using 1
   intro V' fV' hV'
   convert hx fV' (𝟙 _) hV hV' (by rw [Category.id_comp])
   simp only [op_id, FunctorToTypes.map_id_apply]
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_isAmalgamation
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_amalgamation CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_isAmalgamation
 
 /-- Verify that the amalgamation is indeed unique. -/
-theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection hu ℱ hS hx := by
+theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection ℱ hS hx := by
   unfold gluedSection limit.lift
   -- porting note: next line was `ext W`
   -- Now `ext` can't see that `ran` is defined as a limit.
   -- See https://github.com/leanprover-community/mathlib4/issues/5229
   refine limit.hom_ext (λ (W : StructuredArrow (op U) G.op) => ?_)
   erw [limit.lift_π]
-  convert helper hu ℱ hS hx (𝟙 _) y W _
+  convert helper ℱ hS hx (𝟙 _) y W _
   · simp only [op_id, StructuredArrow.map_id]
   · intro V' fV' hV'
     convert hy fV' (by simpa only [Category.comp_id] using hV')
     erw [Category.comp_id]
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique CategoryTheory.RanIsSheafOfCoverLifting.gluedSection_is_unique
+#align category_theory.Ran_is_sheaf_of_cover_lifting.glued_section_is_unique CategoryTheory.RanIsSheafOfIsCocontinuous.gluedSection_is_unique
 
-end RanIsSheafOfCoverLifting
+end RanIsSheafOfIsCocontinuous
 
-/-- If `G` is cover_lifting, then `Ran G.op` pushes sheaves to sheaves.
+variable (K)
+
+/-- If `G` is cocontinuous, then `Ran G.op` pushes sheaves to sheaves.
 
 This result is basically https://stacks.math.columbia.edu/tag/00XK,
 but without the condition that `C` or `D` has pullbacks.
 -/
-theorem ran_isSheaf_of_coverLifting {G : C ⥤ D} (hG : CoverLifting J K G) (ℱ : Sheaf J A) :
+theorem ran_isSheaf_of_isCocontinuous (ℱ : Sheaf J A) :
     Presheaf.IsSheaf K ((ran G.op).obj ℱ.val) := by
   intro X U S hS x hx
   constructor; swap
-  · apply RanIsSheafOfCoverLifting.gluedSection hG ℱ hS hx
+  · apply RanIsSheafOfIsCocontinuous.gluedSection ℱ hS hx
   constructor
-  · apply RanIsSheafOfCoverLifting.gluedSection_isAmalgamation
-  · apply RanIsSheafOfCoverLifting.gluedSection_is_unique
+  · apply RanIsSheafOfIsCocontinuous.gluedSection_isAmalgamation
+  · apply RanIsSheafOfIsCocontinuous.gluedSection_is_unique
 set_option linter.uppercaseLean3 false in
-#align category_theory.Ran_is_sheaf_of_cover_lifting CategoryTheory.ran_isSheaf_of_coverLifting
+#align category_theory.Ran_is_sheaf_of_cover_lifting CategoryTheory.ran_isSheaf_of_isCocontinuous
 
-variable (A)
+variable (A J)
 
-/-- A cover-lifting functor induces a morphism of sites in the same direction as the functor. -/
-def Sites.copullback {G : C ⥤ D} (hG : CoverLifting J K G) : Sheaf J A ⥤ Sheaf K A where
-  obj ℱ := ⟨(ran G.op).obj ℱ.val, ran_isSheaf_of_coverLifting hG ℱ⟩
+/-- A cover-lifting functor induces a pushforward functor on categories of sheaves. -/
+def Functor.sheafPushforwardCocontinuous : Sheaf J A ⥤ Sheaf K A where
+  obj ℱ := ⟨(ran G.op).obj ℱ.val, ran_isSheaf_of_isCocontinuous _ K ℱ⟩
   map f := ⟨(ran G.op).map f.val⟩
   map_id ℱ := Sheaf.Hom.ext _ _ <| (ran G.op).map_id ℱ.val
   map_comp f g := Sheaf.Hom.ext _ _ <| (ran G.op).map_comp f.val g.val
-#align category_theory.sites.copullback CategoryTheory.Sites.copullback
+#align category_theory.sites.copullback CategoryTheory.Functor.sheafPushforwardCocontinuous
+
+/-
+
+Given a cocontinuous functor `G`, the precomposition with `G.op` induces a functor
+on presheaves with leads to a "pullback" functor `Sheaf K A ⥤ Sheaf J A` (TODO: formalize
+this as `G.sheafPullbackCocontinuous A J K`) using the associated sheaf functor.
+It is shown in SGA 4 III 2.3 that this pullback functor is
+left adjoint to `G.sheafPushforwardCocontinuous A J K`. This adjunction may replace
+`Functor.sheafAdjunctionCocontinuous` below, and then, it could be shown that if
+`G` is also continuous, then we have an isomorphism
+`G.sheafPullbackCocontinuous A J K ≅ G.sheafPushforwardContinuous A J K` (TODO).
 
-/--
-Given a functor between sites that is cover-preserving, cover-lifting, and compatible-preserving,
-the pullback and copullback along `G` are adjoint to each other
 -/
+
+/--
+Given a functor between sites that is continuous and cocontinuous,
+the pushforward for the continuous functor `G` is left adjoint to
+the pushforward for the cocontinuous functor `G`. -/
 @[simps unit_app_val counit_app_val]
-noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPreserving J K G)
-    (Hl : CoverLifting J K G) (Hc : CompatiblePreserving K G) :
-    Sites.pullback A Hc Hp ⊣ Sites.copullback A Hl where
+noncomputable def Functor.sheafAdjunctionCocontinuous [G.IsCocontinuous J K]
+    [G.IsContinuous J K] :
+    G.sheafPushforwardContinuous A J K ⊣ G.sheafPushforwardCocontinuous A J K where
   homEquiv X Y :=
     { toFun := fun f => ⟨(Ran.adjunction A G.op).homEquiv X.val Y.val f.val⟩
       invFun := fun f => ⟨((Ran.adjunction A G.op).homEquiv X.val Y.val).symm f.val⟩
@@ -347,9 +366,7 @@ noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPr
     -- porting note: next line was `ext1`
     refine Sheaf.Hom.ext _ _ ?_
     apply (Ran.adjunction A G.op).homEquiv_counit
-#align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Sites.pullbackCopullbackAdjunction
-
-namespace Sites
+#align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Functor.sheafAdjunctionCocontinuous
 
 variable
   [ConcreteCategory.{max v u} A]
@@ -359,30 +376,27 @@ variable
   [∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ A]
   [∀ (X : D), PreservesColimitsOfShape (K.Cover X)ᵒᵖ (forget A)]
   [∀ (X : D), HasColimitsOfShape (K.Cover X)ᵒᵖ A]
+  [G.IsCocontinuous J K] [G.IsContinuous J K]
 
-/-- The natural isomorphism exhibiting compatibility between pullback and sheafification. -/
-def pullbackSheafificationCompatibility
-    {G : C ⥤ D} (Hp : CoverPreserving J K G)
-    (Hl : CoverLifting J K G) (Hc : CompatiblePreserving K G) :
+/-- The natural isomorphism exhibiting compatibility between pushforward and sheafification. -/
+def Functor.pushforwardContinuousSheafificationCompatibility :
     (whiskeringLeft _ _ A).obj G.op ⋙ presheafToSheaf J A ≅
-    presheafToSheaf K A ⋙ pullback A Hc Hp :=
+    presheafToSheaf K A ⋙ G.sheafPushforwardContinuous A J K :=
   letI A1 : (whiskeringLeft _ _ A).obj G.op ⊣ _ := Ran.adjunction _ _
   letI A2 : presheafToSheaf J A ⊣ _ := sheafificationAdjunction _ _
   letI B1 : presheafToSheaf K A ⊣ _ := sheafificationAdjunction _ _
-  letI B2 : pullback A Hc Hp ⊣ _ := pullbackCopullbackAdjunction _ _ Hl _
+  letI B2 := G.sheafAdjunctionCocontinuous A J K
   letI A12 := A1.comp A2
   letI B12 := B1.comp B2
   A12.leftAdjointUniq B12
 
 /- Implementation: This is primarily used to prove the lemma
 `pullbackSheafificationCompatibility_hom_app_val`. -/
-lemma toSheafify_pullbackSheafificationCompatibility
-    {G : C ⥤ D} (Hp : CoverPreserving J K G)
-    (Hl : CoverLifting J K G) (Hc : CompatiblePreserving K G) (F) :
+lemma Functor.toSheafify_pullbackSheafificationCompatibility (F : Dᵒᵖ ⥤ A) :
     J.toSheafify (G.op ⋙ F) ≫
-    ((pullbackSheafificationCompatibility.{w, v, u} A Hp Hl Hc).hom.app F).val =
+    ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val =
     whiskerLeft _ (K.toSheafify _) := by
-  dsimp [pullbackSheafificationCompatibility, Adjunction.leftAdjointUniq]
+  dsimp [pushforwardContinuousSheafificationCompatibility, Adjunction.leftAdjointUniq]
   apply Quiver.Hom.op_inj
   apply coyoneda.map_injective
   ext E : 2
@@ -394,7 +408,7 @@ lemma toSheafify_pullbackSheafificationCompatibility
     GrothendieckTopology.sheafifyMap_sheafifyLift, Category.id_comp,
     Category.assoc, GrothendieckTopology.toSheafify_sheafifyLift]
   ext t s : 3
-  dsimp [pullbackSheaf]
+  dsimp [sheafPushforwardContinuous]
   congr 1
   simp only [← Category.assoc]
   convert Category.id_comp (obj := A) _
@@ -403,15 +417,11 @@ lemma toSheafify_pullbackSheafificationCompatibility
   exact this
 
 @[simp]
-lemma pullbackSheafificationCompatibility_hom_app_val
-    {G : C ⥤ D} (Hp : CoverPreserving J K G)
-    (Hl : CoverLifting J K G) (Hc : CompatiblePreserving K G) (F : Dᵒᵖ ⥤ A) :
-    ((pullbackSheafificationCompatibility.{w, v, u} A Hp Hl Hc).hom.app F).val =
+lemma Functor.pushforwardContinuousSheafificationCompatibility_hom_app_val (F : Dᵒᵖ ⥤ A) :
+    ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val =
     J.sheafifyLift (whiskerLeft G.op <| K.toSheafify F)
-      ((presheafToSheaf K A ⋙ pullback A Hc Hp).obj F).cond := by
+      ((presheafToSheaf K A ⋙ G.sheafPushforwardContinuous A J K).obj F).cond := by
   apply J.sheafifyLift_unique
   apply toSheafify_pullbackSheafificationCompatibility
 
-end Sites
-
 end CategoryTheory
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -62,7 +62,7 @@ namespace CategoryTheory
 
 section CoverLifting
 
-variable {C : Type _} [Category C] {D : Type _} [Category D] {E : Type _} [Category E]
+variable {C : Type*} [Category C] {D : Type*} [Category D] {E : Type*} [Category E]
 
 variable (J : GrothendieckTopology C) (K : GrothendieckTopology D)
 
feat: CategoryTheory/Sites/CoverLifting -- compatibility between sheafification and pullback (#6009)

I'll close https://github.com/leanprover-community/mathlib/pull/14512 once this is merged.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
 -/
-import Mathlib.CategoryTheory.Sites.Sheaf
+import Mathlib.CategoryTheory.Sites.Sheafification
 import Mathlib.CategoryTheory.Limits.KanExtension
 import Mathlib.CategoryTheory.Sites.CoverPreserving
 
@@ -349,4 +349,69 @@ noncomputable def Sites.pullbackCopullbackAdjunction {G : C ⥤ D} (Hp : CoverPr
     apply (Ran.adjunction A G.op).homEquiv_counit
 #align category_theory.sites.pullback_copullback_adjunction CategoryTheory.Sites.pullbackCopullbackAdjunction
 
+namespace Sites
+
+variable
+  [ConcreteCategory.{max v u} A]
+  [PreservesLimits (forget A)]
+  [ReflectsIsomorphisms (forget A)]
+  [∀ (X : C), PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget A)]
+  [∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ A]
+  [∀ (X : D), PreservesColimitsOfShape (K.Cover X)ᵒᵖ (forget A)]
+  [∀ (X : D), HasColimitsOfShape (K.Cover X)ᵒᵖ A]
+
+/-- The natural isomorphism exhibiting compatibility between pullback and sheafification. -/
+def pullbackSheafificationCompatibility
+    {G : C ⥤ D} (Hp : CoverPreserving J K G)
+    (Hl : CoverLifting J K G) (Hc : CompatiblePreserving K G) :
+    (whiskeringLeft _ _ A).obj G.op ⋙ presheafToSheaf J A ≅
+    presheafToSheaf K A ⋙ pullback A Hc Hp :=
+  letI A1 : (whiskeringLeft _ _ A).obj G.op ⊣ _ := Ran.adjunction _ _
+  letI A2 : presheafToSheaf J A ⊣ _ := sheafificationAdjunction _ _
+  letI B1 : presheafToSheaf K A ⊣ _ := sheafificationAdjunction _ _
+  letI B2 : pullback A Hc Hp ⊣ _ := pullbackCopullbackAdjunction _ _ Hl _
+  letI A12 := A1.comp A2
+  letI B12 := B1.comp B2
+  A12.leftAdjointUniq B12
+
+/- Implementation: This is primarily used to prove the lemma
+`pullbackSheafificationCompatibility_hom_app_val`. -/
+lemma toSheafify_pullbackSheafificationCompatibility
+    {G : C ⥤ D} (Hp : CoverPreserving J K G)
+    (Hl : CoverLifting J K G) (Hc : CompatiblePreserving K G) (F) :
+    J.toSheafify (G.op ⋙ F) ≫
+    ((pullbackSheafificationCompatibility.{w, v, u} A Hp Hl Hc).hom.app F).val =
+    whiskerLeft _ (K.toSheafify _) := by
+  dsimp [pullbackSheafificationCompatibility, Adjunction.leftAdjointUniq]
+  apply Quiver.Hom.op_inj
+  apply coyoneda.map_injective
+  ext E : 2
+  dsimp [Functor.preimage, Full.preimage, coyoneda, Adjunction.leftAdjointsCoyonedaEquiv]
+  erw [Adjunction.homEquiv_unit, Adjunction.homEquiv_counit]
+  dsimp [Adjunction.comp]
+  simp only [sheafificationAdjunction_unit_app, Category.comp_id, Functor.map_id,
+    whiskerLeft_id', GrothendieckTopology.sheafifyMap_comp,
+    GrothendieckTopology.sheafifyMap_sheafifyLift, Category.id_comp,
+    Category.assoc, GrothendieckTopology.toSheafify_sheafifyLift]
+  ext t s : 3
+  dsimp [pullbackSheaf]
+  congr 1
+  simp only [← Category.assoc]
+  convert Category.id_comp (obj := A) _
+  have := (Ran.adjunction A G.op).left_triangle
+  apply_fun (fun e => (e.app (K.sheafify F)).app s) at this
+  exact this
+
+@[simp]
+lemma pullbackSheafificationCompatibility_hom_app_val
+    {G : C ⥤ D} (Hp : CoverPreserving J K G)
+    (Hl : CoverLifting J K G) (Hc : CompatiblePreserving K G) (F : Dᵒᵖ ⥤ A) :
+    ((pullbackSheafificationCompatibility.{w, v, u} A Hp Hl Hc).hom.app F).val =
+    J.sheafifyLift (whiskerLeft G.op <| K.toSheafify F)
+      ((presheafToSheaf K A ⋙ pullback A Hc Hp).obj F).cond := by
+  apply J.sheafifyLift_unique
+  apply toSheafify_pullbackSheafificationCompatibility
+
+end Sites
+
 end CategoryTheory
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,16 +2,13 @@
 Copyright (c) 2021 Andrew Yang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module category_theory.sites.cover_lifting
-! leanprover-community/mathlib commit 14b69e9f3c16630440a2cbd46f1ddad0d561dee7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Sites.Sheaf
 import Mathlib.CategoryTheory.Limits.KanExtension
 import Mathlib.CategoryTheory.Sites.CoverPreserving
 
+#align_import category_theory.sites.cover_lifting from "leanprover-community/mathlib"@"14b69e9f3c16630440a2cbd46f1ddad0d561dee7"
+
 /-!
 # Cover-lifting functors between sites.
 
feat: more consistent use of ext, and updating porting notes. (#5242)

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

Diff
@@ -258,6 +258,8 @@ set_option linter.uppercaseLean3 false in
 theorem gluedSection_isAmalgamation : x.IsAmalgamation (gluedSection hu ℱ hS hx) := by
   intro V fV hV
   -- porting note: next line was `ext W`
+  -- Now `ext` can't see that `ran` is defined as a limit.
+  -- See https://github.com/leanprover-community/mathlib4/issues/5229
   refine limit.hom_ext (λ (W : StructuredArrow (op V) G.op) => ?_)
   simp only [Functor.comp_map, limit.lift_pre, coyoneda_obj_map, ran_obj_map, gluedSection]
   erw [limit.lift_π]
@@ -273,6 +275,8 @@ set_option linter.uppercaseLean3 false in
 theorem gluedSection_is_unique (y) (hy : x.IsAmalgamation y) : y = gluedSection hu ℱ hS hx := by
   unfold gluedSection limit.lift
   -- porting note: next line was `ext W`
+  -- Now `ext` can't see that `ran` is defined as a limit.
+  -- See https://github.com/leanprover-community/mathlib4/issues/5229
   refine limit.hom_ext (λ (W : StructuredArrow (op U) G.op) => ?_)
   erw [limit.lift_π]
   convert helper hu ℱ hS hx (𝟙 _) y W _
chore: review of automation in category theory (#4793)

Clean up of automation in the category theory library. Leaving out unnecessary proof steps, or fields done by aesop_cat, and making more use of available autoparameters.

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

Diff
@@ -205,9 +205,7 @@ set_option linter.uppercaseLean3 false in
 /-- The limit cone in order to glue the sections obtained via `get_section`. -/
 def gluedLimitCone : Limits.Cone (Ran.diagram G.op ℱ.val (op U)) :=
   { pt := X -- porting note: autoporter got this wrong
-    π :=
-      { app := fun Y => getSection hu ℱ hS hx Y
-        naturality := fun Y Z f => by aesop_cat } }
+    π := { app := fun Y => getSection hu ℱ hS hx Y } }
 set_option linter.uppercaseLean3 false in
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone
 
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -22,7 +22,7 @@ potential naming collision or confusion with the general definition of cocontinu
 between categories as functors preserving small colimits.
 
 The definition given here seems stronger than the definition found elsewhere,
-but they are actually equivalent via `category_theory.grothendieck_topology.superset_covering`.
+but they are actually equivalent via `CategoryTheory.GrothendieckTopology.superset_covering`.
 (The precise statement is not formalized, but follows from it quite trivially).
 
 ## Main definitions
@@ -217,7 +217,7 @@ theorem gluedLimitCone_π_app (W) : (gluedLimitCone hu ℱ hS hx).π.app W = get
 set_option linter.uppercaseLean3 false in
 #align category_theory.Ran_is_sheaf_of_cover_lifting.glued_limit_cone_π_app CategoryTheory.RanIsSheafOfCoverLifting.gluedLimitCone_π_app
 
-/-- The section obtained by passing `glued_limit_cone` into `category_theory.limits.limit.lift`. -/
+/-- The section obtained by passing `glued_limit_cone` into `CategoryTheory.Limits.limit.lift`. -/
 def gluedSection : X ⟶ ((ran G.op).obj ℱ.val).obj (op U) :=
   limit.lift _ (gluedLimitCone hu ℱ hS hx)
 set_option linter.uppercaseLean3 false in
feat: port CategoryTheory.Sites.CoverLifting (#3898)

Mostly straightforward.

Co-authored-by: Mauricio Collares <mauricio@collares.org>

Dependencies 3 + 334

335 files ported (99.1%)
135750 lines ported (99.2%)
Show graph

The unported dependencies are