category_theory.sites.adjunction
⟷
Mathlib.CategoryTheory.Sites.Adjunction
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -55,7 +55,8 @@ abbrev sheafForget : Sheaf J D ⥤ SheafOfTypes J :=
-- We need to sheafify...
variable [∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.cover X), HasMultiequalizer (S.index P)]
[∀ X : C, HasColimitsOfShape (J.cover X)ᵒᵖ D]
- [∀ X : C, PreservesColimitsOfShape (J.cover X)ᵒᵖ (forget D)] [ReflectsIsomorphisms (forget D)]
+ [∀ X : C, PreservesColimitsOfShape (J.cover X)ᵒᵖ (forget D)]
+ [CategoryTheory.Functor.ReflectsIsomorphisms (forget D)]
namespace Sheaf
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
import CategoryTheory.Adjunction.Whiskering
-import CategoryTheory.Sites.Sheafification
+import CategoryTheory.Sites.ConcreteSheafification
import CategoryTheory.Sites.Whiskering
#align_import category_theory.sites.adjunction from "leanprover-community/mathlib"@"f2b757fc5c341d88741b9c4630b1e8ba973c5726"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -65,7 +65,7 @@ noncomputable section
/-- This is the functor sending a sheaf `X : Sheaf J E` to the sheafification
of `X ⋙ G`. -/
abbrev composeAndSheafify (G : E ⥤ D) : Sheaf J E ⥤ Sheaf J D :=
- sheafToPresheaf J E ⋙ (whiskeringRight _ _ _).obj G ⋙ presheafToSheaf J D
+ sheafToPresheaf J E ⋙ (whiskeringRight _ _ _).obj G ⋙ plusPlusSheaf J D
#align category_theory.Sheaf.compose_and_sheafify CategoryTheory.Sheaf.composeAndSheafify
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
-import Mathbin.CategoryTheory.Adjunction.Whiskering
-import Mathbin.CategoryTheory.Sites.Sheafification
-import Mathbin.CategoryTheory.Sites.Whiskering
+import CategoryTheory.Adjunction.Whiskering
+import CategoryTheory.Sites.Sheafification
+import CategoryTheory.Sites.Whiskering
#align_import category_theory.sites.adjunction from "leanprover-community/mathlib"@"f2b757fc5c341d88741b9c4630b1e8ba973c5726"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.sites.adjunction
-! leanprover-community/mathlib commit f2b757fc5c341d88741b9c4630b1e8ba973c5726
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Adjunction.Whiskering
import Mathbin.CategoryTheory.Sites.Sheafification
import Mathbin.CategoryTheory.Sites.Whiskering
+#align_import category_theory.sites.adjunction from "leanprover-community/mathlib"@"f2b757fc5c341d88741b9c4630b1e8ba973c5726"
+
/-!
> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
> Any changes to this file require a corresponding PR to mathlib4.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -64,12 +64,15 @@ namespace Sheaf
noncomputable section
+#print CategoryTheory.Sheaf.composeAndSheafify /-
/-- This is the functor sending a sheaf `X : Sheaf J E` to the sheafification
of `X ⋙ G`. -/
abbrev composeAndSheafify (G : E ⥤ D) : Sheaf J E ⥤ Sheaf J D :=
sheafToPresheaf J E ⋙ (whiskeringRight _ _ _).obj G ⋙ presheafToSheaf J D
#align category_theory.Sheaf.compose_and_sheafify CategoryTheory.Sheaf.composeAndSheafify
+-/
+#print CategoryTheory.Sheaf.composeEquiv /-
/-- An auxiliary definition to be used in defining `category_theory.Sheaf.adjunction` below. -/
@[simps]
def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
@@ -90,7 +93,9 @@ def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
dsimp
rw [J.to_sheafify_sheafify_lift, Equiv.apply_symm_apply] }
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
+-/
+#print CategoryTheory.Sheaf.adjunction /-
/-- An adjunction `adj : G ⊣ F` with `F : D ⥤ E` and `G : E ⥤ D` induces an adjunction
between `Sheaf J D` and `Sheaf J E`, in contexts where one can sheafify `D`-valued presheaves,
and `F` preserves the correct limits. -/
@@ -101,24 +106,30 @@ def adjunction (adj : G ⊣ F) : composeAndSheafify J G ⊣ sheafCompose J F :=
homEquiv_naturality_left_symm := fun X' X Y f g => by ext1; dsimp; simp
homEquiv_naturality_right := fun X Y Y' f g => by ext1; dsimp; simp }
#align category_theory.Sheaf.adjunction CategoryTheory.Sheaf.adjunction
+-/
instance [IsRightAdjoint F] : IsRightAdjoint (sheafCompose J F) :=
⟨_, adjunction J (Adjunction.ofRightAdjoint F)⟩
section ForgetToType
+#print CategoryTheory.Sheaf.composeAndSheafifyFromTypes /-
/-- This is the functor sending a sheaf of types `X` to the sheafification of `X ⋙ G`. -/
abbrev composeAndSheafifyFromTypes (G : Type max v u ⥤ D) : SheafOfTypes J ⥤ Sheaf J D :=
(sheafEquivSheafOfTypes J).inverse ⋙ composeAndSheafify _ G
#align category_theory.Sheaf.compose_and_sheafify_from_types CategoryTheory.Sheaf.composeAndSheafifyFromTypes
+-/
+#print CategoryTheory.Sheaf.adjunctionToTypes /-
/-- A variant of the adjunction between sheaf categories, in the case where the right adjoint
is the forgetful functor to sheaves of types. -/
def adjunctionToTypes {G : Type max v u ⥤ D} (adj : G ⊣ forget D) :
composeAndSheafifyFromTypes J G ⊣ sheafForget J :=
(sheafEquivSheafOfTypes J).symm.toAdjunction.comp (adjunction J adj)
#align category_theory.Sheaf.adjunction_to_types CategoryTheory.Sheaf.adjunctionToTypes
+-/
+#print CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val /-
@[simp]
theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
(Y : SheafOfTypes J) :
@@ -129,7 +140,9 @@ theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ for
dsimp [adjunction_to_types, adjunction.comp]
simpa
#align category_theory.Sheaf.adjunction_to_types_unit_app_val CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val
+-/
+#print CategoryTheory.Sheaf.adjunctionToTypes_counit_app_val /-
@[simp]
theorem adjunctionToTypes_counit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
(X : Sheaf J D) :
@@ -145,6 +158,7 @@ theorem adjunctionToTypes_counit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ f
nat_iso.of_components]
simp
#align category_theory.Sheaf.adjunction_to_types_counit_app_val CategoryTheory.Sheaf.adjunctionToTypes_counit_app_val
+-/
instance [IsRightAdjoint (forget D)] : IsRightAdjoint (sheafForget J) :=
⟨_, adjunctionToTypes J (Adjunction.ofRightAdjoint (forget D))⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -64,21 +64,12 @@ namespace Sheaf
noncomputable section
-/- warning: category_theory.Sheaf.compose_and_sheafify -> CategoryTheory.Sheaf.composeAndSheafify is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u3 u4, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, u1} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)], (CategoryTheory.Functor.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2) -> (CategoryTheory.Functor.{max u3 u4, max u3 u4, max u4 u2 u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2))
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u4 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, u1} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)], (CategoryTheory.Functor.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2) -> (CategoryTheory.Functor.{max u4 u3, max u4 u3, max (max (max u2 u4) u4 u3) u3, max (max (max u1 u4) u4 u3) u3} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2))
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.compose_and_sheafify CategoryTheory.Sheaf.composeAndSheafifyₓ'. -/
/-- This is the functor sending a sheaf `X : Sheaf J E` to the sheafification
of `X ⋙ G`. -/
abbrev composeAndSheafify (G : E ⥤ D) : Sheaf J E ⥤ Sheaf J D :=
sheafToPresheaf J E ⋙ (whiskeringRight _ _ _).obj G ⋙ presheafToSheaf J D
#align category_theory.Sheaf.compose_and_sheafify CategoryTheory.Sheaf.composeAndSheafify
-/- warning: category_theory.Sheaf.compose_equiv -> CategoryTheory.Sheaf.composeEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquivₓ'. -/
/-- An auxiliary definition to be used in defining `category_theory.Sheaf.adjunction` below. -/
@[simps]
def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
@@ -100,9 +91,6 @@ def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
rw [J.to_sheafify_sheafify_lift, Equiv.apply_symm_apply] }
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
-/- warning: category_theory.Sheaf.adjunction -> CategoryTheory.Sheaf.adjunction is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction CategoryTheory.Sheaf.adjunctionₓ'. -/
/-- An adjunction `adj : G ⊣ F` with `F : D ⥤ E` and `G : E ⥤ D` induces an adjunction
between `Sheaf J D` and `Sheaf J E`, in contexts where one can sheafify `D`-valued presheaves,
and `F` preserves the correct limits. -/
@@ -119,23 +107,11 @@ instance [IsRightAdjoint F] : IsRightAdjoint (sheafCompose J F) :=
section ForgetToType
-/- warning: category_theory.Sheaf.compose_and_sheafify_from_types -> CategoryTheory.Sheaf.composeAndSheafifyFromTypes is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, u1} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)], (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) -> (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)], (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) -> (CategoryTheory.Functor.{max u3 u2, max u3 u2, succ (max u3 u2), max (max (max u1 u3) u3 u2) u2} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.compose_and_sheafify_from_types CategoryTheory.Sheaf.composeAndSheafifyFromTypesₓ'. -/
/-- This is the functor sending a sheaf of types `X` to the sheafification of `X ⋙ G`. -/
abbrev composeAndSheafifyFromTypes (G : Type max v u ⥤ D) : SheafOfTypes J ⥤ Sheaf J D :=
(sheafEquivSheafOfTypes J).inverse ⋙ composeAndSheafify _ G
#align category_theory.Sheaf.compose_and_sheafify_from_types CategoryTheory.Sheaf.composeAndSheafifyFromTypes
-/- warning: category_theory.Sheaf.adjunction_to_types -> CategoryTheory.Sheaf.adjunctionToTypes is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, u1} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2}, (CategoryTheory.Adjunction.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) -> (CategoryTheory.Adjunction.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_7) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_8) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2}, (CategoryTheory.Adjunction.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) -> (CategoryTheory.Adjunction.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6))
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction_to_types CategoryTheory.Sheaf.adjunctionToTypesₓ'. -/
/-- A variant of the adjunction between sheaf categories, in the case where the right adjoint
is the forgetful functor to sheaves of types. -/
def adjunctionToTypes {G : Type max v u ⥤ D} (adj : G ⊣ forget D) :
@@ -143,9 +119,6 @@ def adjunctionToTypes {G : Type max v u ⥤ D} (adj : G ⊣ forget D) :
(sheafEquivSheafOfTypes J).symm.toAdjunction.comp (adjunction J adj)
#align category_theory.Sheaf.adjunction_to_types CategoryTheory.Sheaf.adjunctionToTypes
-/- warning: category_theory.Sheaf.adjunction_to_types_unit_app_val -> CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction_to_types_unit_app_val CategoryTheory.Sheaf.adjunctionToTypes_unit_app_valₓ'. -/
@[simp]
theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
(Y : SheafOfTypes J) :
@@ -157,9 +130,6 @@ theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ for
simpa
#align category_theory.Sheaf.adjunction_to_types_unit_app_val CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val
-/- warning: category_theory.Sheaf.adjunction_to_types_counit_app_val -> CategoryTheory.Sheaf.adjunctionToTypes_counit_app_val is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction_to_types_counit_app_val CategoryTheory.Sheaf.adjunctionToTypes_counit_app_valₓ'. -/
@[simp]
theorem adjunctionToTypes_counit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
(X : Sheaf J D) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -110,16 +110,8 @@ and `F` preserves the correct limits. -/
def adjunction (adj : G ⊣ F) : composeAndSheafify J G ⊣ sheafCompose J F :=
Adjunction.mkOfHomEquiv
{ homEquiv := composeEquiv J adj
- homEquiv_naturality_left_symm := fun X' X Y f g =>
- by
- ext1
- dsimp
- simp
- homEquiv_naturality_right := fun X Y Y' f g =>
- by
- ext1
- dsimp
- simp }
+ homEquiv_naturality_left_symm := fun X' X Y f g => by ext1; dsimp; simp
+ homEquiv_naturality_right := fun X Y Y' f g => by ext1; dsimp; simp }
#align category_theory.Sheaf.adjunction CategoryTheory.Sheaf.adjunction
instance [IsRightAdjoint F] : IsRightAdjoint (sheafCompose J F) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -77,10 +77,7 @@ abbrev composeAndSheafify (G : E ⥤ D) : Sheaf J E ⥤ Sheaf J D :=
#align category_theory.Sheaf.compose_and_sheafify CategoryTheory.Sheaf.composeAndSheafify
/- warning: category_theory.Sheaf.compose_equiv -> CategoryTheory.Sheaf.composeEquiv is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] {F : CategoryTheory.Functor.{max u3 u4, max u3 u4, u1, u2} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2} [_inst_4 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2), CategoryTheory.Limits.PreservesLimit.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, u2} D _inst_2 E _inst_3 (CategoryTheory.Limits.WalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.WalkingMulticospan.CategoryTheory.smallCategory.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.MulticospanIndex.multicospan.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) F] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u3 u4, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, u1} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)], (CategoryTheory.Adjunction.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2 G F) -> (forall (X : CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (Y : CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2), Equiv.{succ (max u3 u4), succ (max u3 u4)} (Quiver.Hom.{succ (max u3 u4), max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.obj.{max u3 u4, max u3 u4, max u4 u2 u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafify.{u1, u2, u3, u4} C _inst_1 J D _inst_2 E _inst_3 _inst_5 _inst_6 (CategoryTheory.Sheaf.composeEquiv._proof_1.{u4, u3, u1} C _inst_1 J D _inst_2 _inst_7) (CategoryTheory.Sheaf.composeEquiv._proof_2.{u4, u3, u1} C _inst_1 J D _inst_2 _inst_8) (fun (X : C) => _inst_9 X) _inst_10 G) X) Y) (Quiver.Hom.{succ (max u3 u4), max u4 u2 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u4, max u4 u2 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u4, max u4 u2 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3))) X (CategoryTheory.Functor.obj.{max u3 u4, max u3 u4, max u4 u1 u3 u4, max u4 u2 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.sheafCompose.{u3, u4, u1, u2} C _inst_1 D _inst_2 E _inst_3 J F (fun (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) => _inst_4 X S P)) Y)))
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] {F : CategoryTheory.Functor.{max u4 u3, max u4 u3, u1, u2} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2} [_inst_4 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2), CategoryTheory.Limits.PreservesLimit.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, u2} D _inst_2 E _inst_3 (CategoryTheory.Limits.WalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.WalkingMulticospan.instSmallCategoryWalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.MulticospanIndex.multicospan.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) F] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u4 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, u1} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)], (CategoryTheory.Adjunction.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2 G F) -> (forall (X : CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (Y : CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2), Equiv.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (Quiver.Hom.{max (succ u4) (succ u3), max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2))) (Prefunctor.obj.{max (succ u4) (succ u3), max (succ u4) (succ u3), max (max u4 u3) u2, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3))) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u4 u3, max u4 u3, max (max u4 u3) u2, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafify.{u1, u2, u3, u4} C _inst_1 J D _inst_2 E _inst_3 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G)) X) Y) (Quiver.Hom.{max (succ u4) (succ u3), max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3))) X (Prefunctor.obj.{max (succ u4) (succ u3), max (succ u4) (succ u3), max (max u4 u3) u1, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u4 u3, max u4 u3, max (max u4 u3) u1, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.sheafCompose.{u3, u4, u1, u2} C _inst_1 D _inst_2 E _inst_3 J F (fun (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) => _inst_4 X S P))) Y)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquivₓ'. -/
/-- An auxiliary definition to be used in defining `category_theory.Sheaf.adjunction` below. -/
@[simps]
@@ -104,10 +101,7 @@ def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
/- warning: category_theory.Sheaf.adjunction -> CategoryTheory.Sheaf.adjunction is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] {F : CategoryTheory.Functor.{max u3 u4, max u3 u4, u1, u2} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2} [_inst_4 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2), CategoryTheory.Limits.PreservesLimit.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, u2} D _inst_2 E _inst_3 (CategoryTheory.Limits.WalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.WalkingMulticospan.CategoryTheory.smallCategory.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.MulticospanIndex.multicospan.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) F] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u3 u4, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, u1} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)], (CategoryTheory.Adjunction.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2 G F) -> (CategoryTheory.Adjunction.{max u3 u4, max u3 u4, max u4 u2 u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafify.{u1, u2, u3, u4} C _inst_1 J D _inst_2 E _inst_3 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunction._proof_1.{u4, u3, u1} C _inst_1 J D _inst_2 _inst_7) (CategoryTheory.Sheaf.adjunction._proof_2.{u4, u3, u1} C _inst_1 J D _inst_2 _inst_8) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafCompose.{u3, u4, u1, u2} C _inst_1 D _inst_2 E _inst_3 J F (fun (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) => _inst_4 X S P)))
-but is expected to have type
- forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] {F : CategoryTheory.Functor.{max u4 u3, max u4 u3, u1, u2} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2} [_inst_4 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2), CategoryTheory.Limits.PreservesLimit.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, u2} D _inst_2 E _inst_3 (CategoryTheory.Limits.WalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.WalkingMulticospan.instSmallCategoryWalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.MulticospanIndex.multicospan.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) F] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u4 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, u1} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)], (CategoryTheory.Adjunction.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2 G F) -> (CategoryTheory.Adjunction.{max u4 u3, max u4 u3, max (max u4 u3) u2, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafify.{u1, u2, u3, u4} C _inst_1 J D _inst_2 E _inst_3 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafCompose.{u3, u4, u1, u2} C _inst_1 D _inst_2 E _inst_3 J F (fun (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) => _inst_4 X S P)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction CategoryTheory.Sheaf.adjunctionₓ'. -/
/-- An adjunction `adj : G ⊣ F` with `F : D ⥤ E` and `G : E ⥤ D` induces an adjunction
between `Sheaf J D` and `Sheaf J E`, in contexts where one can sheafify `D`-valued presheaves,
@@ -158,10 +152,7 @@ def adjunctionToTypes {G : Type max v u ⥤ D} (adj : G ⊣ forget D) :
#align category_theory.Sheaf.adjunction_to_types CategoryTheory.Sheaf.adjunctionToTypes
/- warning: category_theory.Sheaf.adjunction_to_types_unit_app_val -> CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, u1} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2} (adj : CategoryTheory.Adjunction.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (Y : CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J), Eq.{succ (max u2 u3)} (Quiver.Hom.{succ (max u2 u3), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y)) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) Y))) (CategoryTheory.SheafOfTypes.Hom.val.{u2, u3, max u2 u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) Y) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) (CategoryTheory.Adjunction.unit.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.adjunctionToTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G adj)) Y)) (CategoryTheory.CategoryStruct.comp.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5))) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y))) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) Y)) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.id.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5))) (CategoryTheory.Adjunction.unit.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (CategoryTheory.Adjunction.whiskerRight.{u3, succ (max u2 u3), u1, u2, max u2 u3, max u2 u3} (Opposite.{succ u3} C) Type.{max u2 u3} D (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) CategoryTheory.types.{max u2 u3} _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) adj)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.sheafOfTypesToPresheaf.{max u2 u3, u2, u3} C _inst_1 J) Y)) (CategoryTheory.whiskerRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y))) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) Y)) (CategoryTheory.GrothendieckTopology.toSheafify.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y)))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2} (adj : CategoryTheory.Adjunction.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (Y : CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{max (succ u3) (succ (max u3 u2)), succ (max u3 u2)} (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.SheafOfTypes.val.{max u3 u2, u2, u3} C _inst_1 J (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.id.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) Y)) (CategoryTheory.SheafOfTypes.val.{max u3 u2, u2, u3} C _inst_1 J (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6))) Y))) (CategoryTheory.SheafOfTypes.Hom.val.{u2, u3, max u3 u2} C _inst_1 J (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.id.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) Y) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6))) Y) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.id.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J)) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) (CategoryTheory.Adjunction.unit.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.adjunctionToTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G adj)) Y)) (CategoryTheory.CategoryStruct.comp.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y)) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)))) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) 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) D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.GrothendieckTopology.sheafify.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5))) (CategoryTheory.Adjunction.unit.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (CategoryTheory.Adjunction.whiskerRight.{u3, max (succ u3) (succ u2), u1, u2, max u3 u2, max u3 u2} (Opposite.{succ u3} C) Type.{max u2 u3} D (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) CategoryTheory.types.{max u3 u2} _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) adj)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y)) (CategoryTheory.whiskerRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y)) (CategoryTheory.GrothendieckTopology.sheafify.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y))) (CategoryTheory.GrothendieckTopology.toSheafify.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction_to_types_unit_app_val CategoryTheory.Sheaf.adjunctionToTypes_unit_app_valₓ'. -/
@[simp]
theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
@@ -175,10 +166,7 @@ theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ for
#align category_theory.Sheaf.adjunction_to_types_unit_app_val CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val
/- warning: category_theory.Sheaf.adjunction_to_types_counit_app_val -> CategoryTheory.Sheaf.adjunctionToTypes_counit_app_val is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, u1} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2} (adj : CategoryTheory.Adjunction.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (X : CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2), Eq.{succ (max u2 u3)} (Quiver.Hom.{succ (max u2 u3), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G)) X)) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) X))) (CategoryTheory.Sheaf.Hom.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G)) X) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) X) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G)) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) (CategoryTheory.Adjunction.counit.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.adjunctionToTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G adj)) X)) (CategoryTheory.GrothendieckTopology.sheafifyLift.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.sheafToPresheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Equivalence.inverse.{max u2 u3, max u2 u3, max u3 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.sheafEquivSheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) X)))) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) X)) (CategoryTheory.CategoryStruct.comp.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.sheafToPresheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Equivalence.inverse.{max u2 u3, max u2 u3, max u3 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.sheafEquivSheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) X)))) (CategoryTheory.Functor.comp.{u2, max u2 u3, max u2 u3, u3, u1, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 D _inst_2 (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3), u1} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) G)) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) X)) (CategoryTheory.Iso.hom.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{u2, max u2 u3, max u2 u3, u3, succ (max u2 u3), u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u2 u3, max u2 u3, u3, u1, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) G) (CategoryTheory.Functor.comp.{u2, max u2 u3, max u2 u3, u3, u1, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 D _inst_2 (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3), u1} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) G)) (CategoryTheory.Functor.associator.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) G)) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G)) (CategoryTheory.Functor.id.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Adjunction.counit.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (CategoryTheory.Adjunction.whiskerRight.{u3, succ (max u2 u3), u1, u2, max u2 u3, max u2 u3} (Opposite.{succ u3} C) Type.{max u2 u3} D (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) CategoryTheory.types.{max u2 u3} _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) adj)) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X))) (CategoryTheory.Sheaf.cond.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2} (adj : CategoryTheory.Adjunction.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (X : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{max (succ u3) (succ (max u3 u2)), max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G))) X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) X))) (CategoryTheory.Sheaf.Hom.val.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G))) X) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) X) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G)) (CategoryTheory.Functor.id.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2)) (CategoryTheory.Adjunction.counit.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.adjunctionToTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G adj)) X)) (CategoryTheory.GrothendieckTopology.sheafifyLift.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, max (succ u3) (succ u2), u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (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) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} X.0 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) G) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) X.0) (CategoryTheory.CategoryStruct.comp.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, max (succ u3) (succ u2), u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (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) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} X.0 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) G) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 D _inst_2 X.0 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2), u1} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) G)) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) X.0) (CategoryTheory.Iso.hom.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, max (succ u3) (succ u2), u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (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) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} X.0 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) G) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 D _inst_2 X.0 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2), u1} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) G)) (CategoryTheory.Functor.associator.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 X.0 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) G)) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max (max (max u3 u2) u1) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Adjunction.counit.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (CategoryTheory.Adjunction.whiskerRight.{u3, max (succ u3) (succ u2), u1, u2, max u3 u2, max u3 u2} (Opposite.{succ u3} C) Type.{max u2 u3} D (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) CategoryTheory.types.{max u3 u2} _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) adj)) X.0)) (CategoryTheory.Sheaf.cond.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2 X))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction_to_types_counit_app_val CategoryTheory.Sheaf.adjunctionToTypes_counit_app_valₓ'. -/
@[simp]
theorem adjunctionToTypes_counit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
mathlib commit https://github.com/leanprover-community/mathlib/commit/86d04064ca33ee3d3405fbfc497d494fd2dd4796
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
! This file was ported from Lean 3 source module category_theory.sites.adjunction
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit f2b757fc5c341d88741b9c4630b1e8ba973c5726
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.CategoryTheory.Sites.Sheafification
import Mathbin.CategoryTheory.Sites.Whiskering
/-!
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In this file, we show that an adjunction `F ⊣ G` induces an adjunction between
categories of sheaves, under certain hypotheses on `F` and `G`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -44,11 +44,13 @@ variable [∀ (X : C) (S : J.cover X) (P : Cᵒᵖ ⥤ D), PreservesLimit (S.ind
variable [ConcreteCategory.{max v u} D] [PreservesLimits (forget D)]
+#print CategoryTheory.sheafForget /-
/-- The forgetful functor from `Sheaf J D` to sheaves of types, for a concrete category `D`
whose forgetful functor preserves the correct limits. -/
abbrev sheafForget : Sheaf J D ⥤ SheafOfTypes J :=
sheafCompose J (forget D) ⋙ (sheafEquivSheafOfTypes J).Functor
#align category_theory.Sheaf_forget CategoryTheory.sheafForget
+-/
-- We need to sheafify...
variable [∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.cover X), HasMultiequalizer (S.index P)]
@@ -59,12 +61,24 @@ namespace Sheaf
noncomputable section
+/- warning: category_theory.Sheaf.compose_and_sheafify -> CategoryTheory.Sheaf.composeAndSheafify is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u3 u4, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, u1} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)], (CategoryTheory.Functor.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2) -> (CategoryTheory.Functor.{max u3 u4, max u3 u4, max u4 u2 u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2))
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u4 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, u1} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)], (CategoryTheory.Functor.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2) -> (CategoryTheory.Functor.{max u4 u3, max u4 u3, max (max (max u2 u4) u4 u3) u3, max (max (max u1 u4) u4 u3) u3} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.compose_and_sheafify CategoryTheory.Sheaf.composeAndSheafifyₓ'. -/
/-- This is the functor sending a sheaf `X : Sheaf J E` to the sheafification
of `X ⋙ G`. -/
abbrev composeAndSheafify (G : E ⥤ D) : Sheaf J E ⥤ Sheaf J D :=
sheafToPresheaf J E ⋙ (whiskeringRight _ _ _).obj G ⋙ presheafToSheaf J D
#align category_theory.Sheaf.compose_and_sheafify CategoryTheory.Sheaf.composeAndSheafify
+/- warning: category_theory.Sheaf.compose_equiv -> CategoryTheory.Sheaf.composeEquiv is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] {F : CategoryTheory.Functor.{max u3 u4, max u3 u4, u1, u2} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2} [_inst_4 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2), CategoryTheory.Limits.PreservesLimit.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, u2} D _inst_2 E _inst_3 (CategoryTheory.Limits.WalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.WalkingMulticospan.CategoryTheory.smallCategory.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.MulticospanIndex.multicospan.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) F] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u3 u4, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, u1} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)], (CategoryTheory.Adjunction.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2 G F) -> (forall (X : CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (Y : CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2), Equiv.{succ (max u3 u4), succ (max u3 u4)} (Quiver.Hom.{succ (max u3 u4), max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.obj.{max u3 u4, max u3 u4, max u4 u2 u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafify.{u1, u2, u3, u4} C _inst_1 J D _inst_2 E _inst_3 _inst_5 _inst_6 (CategoryTheory.Sheaf.composeEquiv._proof_1.{u4, u3, u1} C _inst_1 J D _inst_2 _inst_7) (CategoryTheory.Sheaf.composeEquiv._proof_2.{u4, u3, u1} C _inst_1 J D _inst_2 _inst_8) (fun (X : C) => _inst_9 X) _inst_10 G) X) Y) (Quiver.Hom.{succ (max u3 u4), max u4 u2 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u4, max u4 u2 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u3 u4, max u4 u2 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3))) X (CategoryTheory.Functor.obj.{max u3 u4, max u3 u4, max u4 u1 u3 u4, max u4 u2 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.sheafCompose.{u3, u4, u1, u2} C _inst_1 D _inst_2 E _inst_3 J F (fun (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) => _inst_4 X S P)) Y)))
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] {F : CategoryTheory.Functor.{max u4 u3, max u4 u3, u1, u2} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2} [_inst_4 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2), CategoryTheory.Limits.PreservesLimit.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, u2} D _inst_2 E _inst_3 (CategoryTheory.Limits.WalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.WalkingMulticospan.instSmallCategoryWalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.MulticospanIndex.multicospan.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) F] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u4 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, u1} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)], (CategoryTheory.Adjunction.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2 G F) -> (forall (X : CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (Y : CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2), Equiv.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (Quiver.Hom.{max (succ u4) (succ u3), max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2))) (Prefunctor.obj.{max (succ u4) (succ u3), max (succ u4) (succ u3), max (max u4 u3) u2, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3))) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u4 u3, max u4 u3, max (max u4 u3) u2, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafify.{u1, u2, u3, u4} C _inst_1 J D _inst_2 E _inst_3 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G)) X) Y) (Quiver.Hom.{max (succ u4) (succ u3), max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3))) X (Prefunctor.obj.{max (succ u4) (succ u3), max (succ u4) (succ u3), max (max u4 u3) u1, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.CategoryStruct.toQuiver.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Category.toCategoryStruct.{max u4 u3, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3))) (CategoryTheory.Functor.toPrefunctor.{max u4 u3, max u4 u3, max (max u4 u3) u1, max (max u4 u3) u2} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.sheafCompose.{u3, u4, u1, u2} C _inst_1 D _inst_2 E _inst_3 J F (fun (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) => _inst_4 X S P))) Y)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquivₓ'. -/
/-- An auxiliary definition to be used in defining `category_theory.Sheaf.adjunction` below. -/
@[simps]
def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
@@ -86,6 +100,12 @@ def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
rw [J.to_sheafify_sheafify_lift, Equiv.apply_symm_apply] }
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
+/- warning: category_theory.Sheaf.adjunction -> CategoryTheory.Sheaf.adjunction is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] {F : CategoryTheory.Functor.{max u3 u4, max u3 u4, u1, u2} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2} [_inst_4 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2), CategoryTheory.Limits.PreservesLimit.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, u2} D _inst_2 E _inst_3 (CategoryTheory.Limits.WalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.WalkingMulticospan.CategoryTheory.smallCategory.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u3 u4, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.MulticospanIndex.multicospan.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) F] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u3 u4, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u4, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, u1} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (Opposite.{succ (max u4 u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u4, max u3 u4, u1, succ (max u3 u4)} D _inst_2 Type.{max u3 u4} CategoryTheory.types.{max u3 u4} (CategoryTheory.forget.{u1, max u3 u4, max u3 u4} D _inst_2 _inst_5)], (CategoryTheory.Adjunction.{max u3 u4, max u3 u4, u2, u1} E _inst_3 D _inst_2 G F) -> (CategoryTheory.Adjunction.{max u3 u4, max u3 u4, max u4 u2 u3 u4, max u4 u1 u3 u4} (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u3, max u3 u4, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafify.{u1, u2, u3, u4} C _inst_1 J D _inst_2 E _inst_3 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunction._proof_1.{u4, u3, u1} C _inst_1 J D _inst_2 _inst_7) (CategoryTheory.Sheaf.adjunction._proof_2.{u4, u3, u1} C _inst_1 J D _inst_2 _inst_8) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafCompose.{u3, u4, u1, u2} C _inst_1 D _inst_2 E _inst_3 J F (fun (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u3 u4, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) => _inst_4 X S P)))
+but is expected to have type
+ forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] (J : CategoryTheory.GrothendieckTopology.{u3, u4} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u3 u4, u1} D] {E : Type.{u2}} [_inst_3 : CategoryTheory.Category.{max u3 u4, u2} E] {F : CategoryTheory.Functor.{max u4 u3, max u4 u3, u1, u2} D _inst_2 E _inst_3} {G : CategoryTheory.Functor.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2} [_inst_4 : forall (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2), CategoryTheory.Limits.PreservesLimit.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, u2} D _inst_2 E _inst_3 (CategoryTheory.Limits.WalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.WalkingMulticospan.instSmallCategoryWalkingMulticospan.{max u4 u3} (CategoryTheory.Limits.MulticospanIndex.L.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.R.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.fstTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) (CategoryTheory.Limits.MulticospanIndex.sndTo.{max u4 u3, max u4 u3, u1} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P))) (CategoryTheory.Limits.MulticospanIndex.multicospan.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)) F] [_inst_5 : CategoryTheory.ConcreteCategory.{max u3 u4, max u4 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u4 u3, u1, max u4 u3} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u3, u4} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, u1} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u4 u3, max u4 u3, max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (Opposite.{max (succ u4) (succ u3)} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u4 u3, max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (Preorder.smallCategory.{max u4 u3} (CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u3, u4} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u4 u3, max u4 u3, u1, max (succ u4) (succ u3)} D _inst_2 Type.{max u4 u3} CategoryTheory.types.{max u4 u3} (CategoryTheory.forget.{u1, max u4 u3, max u4 u3} D _inst_2 _inst_5)], (CategoryTheory.Adjunction.{max u4 u3, max u4 u3, u2, u1} E _inst_3 D _inst_2 G F) -> (CategoryTheory.Adjunction.{max u4 u3, max u4 u3, max (max u4 u3) u2, max (max u4 u3) u1} (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u2} C _inst_1 J E _inst_3) (CategoryTheory.Sheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u3, max u4 u3, u4, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafify.{u1, u2, u3, u4} C _inst_1 J D _inst_2 E _inst_3 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafCompose.{u3, u4, u1, u2} C _inst_1 D _inst_2 E _inst_3 J F (fun (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u3, u4} C _inst_1 J X) (P : CategoryTheory.Functor.{u3, max u4 u3, u4, u1} (Opposite.{succ u4} C) (CategoryTheory.Category.opposite.{u3, u4} C _inst_1) D _inst_2) => _inst_4 X S P)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction CategoryTheory.Sheaf.adjunctionₓ'. -/
/-- An adjunction `adj : G ⊣ F` with `F : D ⥤ E` and `G : E ⥤ D` induces an adjunction
between `Sheaf J D` and `Sheaf J E`, in contexts where one can sheafify `D`-valued presheaves,
and `F` preserves the correct limits. -/
@@ -110,11 +130,23 @@ instance [IsRightAdjoint F] : IsRightAdjoint (sheafCompose J F) :=
section ForgetToType
+/- warning: category_theory.Sheaf.compose_and_sheafify_from_types -> CategoryTheory.Sheaf.composeAndSheafifyFromTypes is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, u1} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)], (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) -> (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)], (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) -> (CategoryTheory.Functor.{max u3 u2, max u3 u2, succ (max u3 u2), max (max (max u1 u3) u3 u2) u2} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.compose_and_sheafify_from_types CategoryTheory.Sheaf.composeAndSheafifyFromTypesₓ'. -/
/-- This is the functor sending a sheaf of types `X` to the sheafification of `X ⋙ G`. -/
abbrev composeAndSheafifyFromTypes (G : Type max v u ⥤ D) : SheafOfTypes J ⥤ Sheaf J D :=
(sheafEquivSheafOfTypes J).inverse ⋙ composeAndSheafify _ G
#align category_theory.Sheaf.compose_and_sheafify_from_types CategoryTheory.Sheaf.composeAndSheafifyFromTypes
+/- warning: category_theory.Sheaf.adjunction_to_types -> CategoryTheory.Sheaf.adjunctionToTypes is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, u1} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2}, (CategoryTheory.Adjunction.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) -> (CategoryTheory.Adjunction.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_7) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 _inst_8) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2}, (CategoryTheory.Adjunction.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) -> (CategoryTheory.Adjunction.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction_to_types CategoryTheory.Sheaf.adjunctionToTypesₓ'. -/
/-- A variant of the adjunction between sheaf categories, in the case where the right adjoint
is the forgetful functor to sheaves of types. -/
def adjunctionToTypes {G : Type max v u ⥤ D} (adj : G ⊣ forget D) :
@@ -122,6 +154,12 @@ def adjunctionToTypes {G : Type max v u ⥤ D} (adj : G ⊣ forget D) :
(sheafEquivSheafOfTypes J).symm.toAdjunction.comp (adjunction J adj)
#align category_theory.Sheaf.adjunction_to_types CategoryTheory.Sheaf.adjunctionToTypes
+/- warning: category_theory.Sheaf.adjunction_to_types_unit_app_val -> CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, u1} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2} (adj : CategoryTheory.Adjunction.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (Y : CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J), Eq.{succ (max u2 u3)} (Quiver.Hom.{succ (max u2 u3), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}))) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y)) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) Y))) (CategoryTheory.SheafOfTypes.Hom.val.{u2, u3, max u2 u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) Y) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) (CategoryTheory.Adjunction.unit.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.adjunctionToTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G adj)) Y)) (CategoryTheory.CategoryStruct.comp.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5))) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y))) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) Y)) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.id.{max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5))) (CategoryTheory.Adjunction.unit.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (CategoryTheory.Adjunction.whiskerRight.{u3, succ (max u2 u3), u1, u2, max u2 u3, max u2 u3} (Opposite.{succ u3} C) Type.{max u2 u3} D (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) CategoryTheory.types.{max u2 u3} _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) adj)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.sheafOfTypesToPresheaf.{max u2 u3, u2, u3} C _inst_1 J) Y)) (CategoryTheory.whiskerRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y))) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) Y)) (CategoryTheory.GrothendieckTopology.toSheafify.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.SheafOfTypes.val.{max u2 u3, u2, u3} C _inst_1 J (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Functor.id.{max u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J)) Y)))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2} (adj : CategoryTheory.Adjunction.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (Y : CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{max (succ u3) (succ (max u3 u2)), succ (max u3 u2)} (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.SheafOfTypes.val.{max u3 u2, u2, u3} C _inst_1 J (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.id.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) Y)) (CategoryTheory.SheafOfTypes.val.{max u3 u2, u2, u3} C _inst_1 J (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6))) Y))) (CategoryTheory.SheafOfTypes.Hom.val.{u2, u3, max u3 u2} C _inst_1 J (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.id.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) Y) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6))) Y) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.id.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J)) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1, max (succ u3) (succ u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6)) (CategoryTheory.Adjunction.unit.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.adjunctionToTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G adj)) Y)) (CategoryTheory.CategoryStruct.comp.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (succ u3) (succ u2)} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y)) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)))) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) 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) D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.GrothendieckTopology.sheafify.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5))) (CategoryTheory.Adjunction.unit.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (CategoryTheory.Adjunction.whiskerRight.{u3, max (succ u3) (succ u2), u1, u2, max u3 u2, max u3 u2} (Opposite.{succ u3} C) Type.{max u2 u3} D (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) CategoryTheory.types.{max u3 u2} _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) adj)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y)) (CategoryTheory.whiskerRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y)) (CategoryTheory.GrothendieckTopology.sheafify.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y))) (CategoryTheory.GrothendieckTopology.toSheafify.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (Prefunctor.obj.{max (succ u3) (succ (max u3 u2)), max (succ u3) (succ (max u3 u2)), succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J))) (CategoryTheory.Functor.{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.CategoryStruct.toQuiver.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.Category.toCategoryStruct.{max u3 u2, succ (max u3 u2)} (CategoryTheory.Functor.{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.category.{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.toPrefunctor.{max u3 u2, max u3 u2, succ (max u3 u2), succ (max u3 u2)} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Functor.{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.category.{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.sheafOfTypesToPresheaf.{max u3 u2, u2, u3} C _inst_1 J)) Y))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction_to_types_unit_app_val CategoryTheory.Sheaf.adjunctionToTypes_unit_app_valₓ'. -/
@[simp]
theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
(Y : SheafOfTypes J) :
@@ -133,6 +171,12 @@ theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ for
simpa
#align category_theory.Sheaf.adjunction_to_types_unit_app_val CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val
+/- warning: category_theory.Sheaf.adjunction_to_types_counit_app_val -> CategoryTheory.Sheaf.adjunctionToTypes_counit_app_val is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u2 u3, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u2 u3, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, u1} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (Opposite.{succ (max u3 u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.Cover.preorder.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2} (adj : CategoryTheory.Adjunction.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (X : CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2), Eq.{succ (max u2 u3)} (Quiver.Hom.{succ (max u2 u3), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G)) X)) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) X))) (CategoryTheory.Sheaf.Hom.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G)) X) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) X) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G)) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) (CategoryTheory.Adjunction.counit.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 u1 u2 u3} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (CategoryTheory.Sheaf.adjunctionToTypes._proof_1.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S)) (CategoryTheory.Sheaf.adjunctionToTypes._proof_2.{u3, u2, u1} C _inst_1 J D _inst_2 (fun (X : C) => _inst_8 X)) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.adjunctionToTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G adj)) X)) (CategoryTheory.GrothendieckTopology.sheafifyLift.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.sheafToPresheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Equivalence.inverse.{max u2 u3, max u2 u3, max u3 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.sheafEquivSheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) X)))) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) X)) (CategoryTheory.CategoryStruct.comp.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.sheafToPresheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u2 (succ (max u2 u3)), max u3 (succ (max u2 u3))} (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Equivalence.inverse.{max u2 u3, max u2 u3, max u3 (succ (max u2 u3)), max u3 u2 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, succ (max u2 u3)} C _inst_1 J Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.sheafEquivSheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J)) (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u2 (succ (max u2 u3))} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u2 u3, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.CategoryTheory.category.{u2, u3, max u2 u3} C _inst_1 J) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) X)))) (CategoryTheory.Functor.comp.{u2, max u2 u3, max u2 u3, u3, u1, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 D _inst_2 (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3), u1} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) G)) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 (CategoryTheory.Functor.obj.{max u2 u3, max u2 u3, max u3 u1 u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u2 u3, max u3 u1 u2 u3} (CategoryTheory.Sheaf.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.CategoryTheory.category.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2)) X)) (CategoryTheory.Iso.hom.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{u2, max u2 u3, max u2 u3, u3, succ (max u2 u3), u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 (CategoryTheory.Functor.comp.{u2, max u2 u3, max u2 u3, u3, u1, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) G) (CategoryTheory.Functor.comp.{u2, max u2 u3, max u2 u3, u3, u1, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 D _inst_2 (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, u1, succ (max u2 u3), u1} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) G)) (CategoryTheory.Functor.associator.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2 (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) G)) (CategoryTheory.NatTrans.app.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G)) (CategoryTheory.Functor.id.{max u2 u3, max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Adjunction.counit.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.obj.{succ (max u2 u3), max (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 u3, max (max u2 u3) (succ (max u2 u3)) u1, max (max u2 u3) (max u2 (max u2 u3) u3 (succ (max u2 u3))) u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, succ (max u2 u3), u1} Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 (succ (max u2 u3)), max u2 (max u2 u3) u3 u1} (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, succ (max u2 u3), max u2 u3, u1, max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3} D _inst_2) G) (CategoryTheory.Functor.obj.{max u1 u2 u3, max (max u2 (max u2 u3) u3 u1) u2 u3, max (max u2 u3) u1 (succ (max u2 u3)), max (max u2 u3) (max u2 (max u2 u3) u3 u1) u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, u1, succ (max u2 u3)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.Functor.category.{max u2 u3, max u2 u3, max u2 (max u2 u3) u3 u1, max u2 (max u2 u3) u3 (succ (max u2 u3))} (CategoryTheory.Functor.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.Functor.category.{u2, max u2 u3, u3, succ (max u2 u3)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u2 u3})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u2 u3, succ (max u2 u3), max u2 u3} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u2 u3}) (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5)) (CategoryTheory.Adjunction.whiskerRight.{u3, succ (max u2 u3), u1, u2, max u2 u3, max u2 u3} (Opposite.{succ u3} C) Type.{max u2 u3} D (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) CategoryTheory.types.{max u2 u3} _inst_2 G (CategoryTheory.forget.{u1, max u2 u3, max u2 u3} D _inst_2 _inst_5) adj)) (CategoryTheory.Sheaf.val.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X))) (CategoryTheory.Sheaf.cond.{u2, max u2 u3, u3, u1} C _inst_1 J D _inst_2 X))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (J : CategoryTheory.GrothendieckTopology.{u2, u3} C _inst_1) {D : Type.{u1}} [_inst_2 : CategoryTheory.Category.{max u2 u3, u1} D] [_inst_5 : CategoryTheory.ConcreteCategory.{max u2 u3, max u3 u2, u1} D _inst_2] [_inst_6 : CategoryTheory.Limits.PreservesLimits.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_7 : forall (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X), CategoryTheory.Limits.HasMultiequalizer.{max u3 u2, u1, max u3 u2} D _inst_2 (CategoryTheory.GrothendieckTopology.Cover.index.{u1, u2, u3} C _inst_1 X J D _inst_2 S P)] [_inst_8 : forall (X : C), CategoryTheory.Limits.HasColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, u1} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) D _inst_2] [_inst_9 : forall (X : C), CategoryTheory.Limits.PreservesColimitsOfShape.{max u3 u2, max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (Opposite.{max (succ u3) (succ u2)} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X)) (CategoryTheory.Category.opposite.{max u3 u2, max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (Preorder.smallCategory.{max u3 u2} (CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) (CategoryTheory.GrothendieckTopology.instPreorderCover.{u2, u3} C _inst_1 J X))) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] [_inst_10 : CategoryTheory.ReflectsIsomorphisms.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u3 u2} CategoryTheory.types.{max u3 u2} (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)] {G : CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2} (adj : CategoryTheory.Adjunction.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (X : CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2), Eq.{max (succ u3) (succ u2)} (Quiver.Hom.{max (succ u3) (succ (max u3 u2)), max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G))) X)) (CategoryTheory.Sheaf.val.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) X))) (CategoryTheory.Sheaf.Hom.val.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2 (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G))) X) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.id.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2))) X) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (max u3 u2) u1, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max u3 u2) u1, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G)) (CategoryTheory.Functor.id.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2)) (CategoryTheory.Adjunction.counit.{max u3 u2, max u3 u2, max (succ u3) (succ u2), max (max u3 u2) u1} (CategoryTheory.SheafOfTypes.{max u3 u2, u2, u3} C _inst_1 J) (CategoryTheory.SheafOfTypes.instCategorySheafOfTypes.{u2, u3, max u3 u2} C _inst_1 J) (CategoryTheory.Sheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.instCategorySheaf.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2) (CategoryTheory.Sheaf.composeAndSheafifyFromTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G) (CategoryTheory.sheafForget.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6) (CategoryTheory.Sheaf.adjunctionToTypes.{u1, u2, u3} C _inst_1 J D _inst_2 _inst_5 _inst_6 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (fun (X : C) => _inst_9 X) _inst_10 G adj)) X)) (CategoryTheory.GrothendieckTopology.sheafifyLift.{u1, u2, u3} C _inst_1 J D _inst_2 (fun (P : CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (X : C) (S : CategoryTheory.GrothendieckTopology.Cover.{u2, u3} C _inst_1 J X) => _inst_7 P X S) (fun (X : C) => _inst_8 X) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, max (succ u3) (succ u2), u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (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) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} X.0 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) G) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) X.0) (CategoryTheory.CategoryStruct.comp.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max u3 u2) u1} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, max (succ u3) (succ u2), u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (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) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} X.0 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) G) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 D _inst_2 X.0 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2), u1} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) G)) (Prefunctor.obj.{succ (max u3 u2), succ (max u3 u2), max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) (CategoryTheory.Functor.toPrefunctor.{max u3 u2, max u3 u2, max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2))) X.0) (CategoryTheory.Iso.hom.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, max (succ u3) (succ u2), u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (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) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} X.0 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) G) (CategoryTheory.Functor.comp.{u2, max u3 u2, max u3 u2, u3, u1, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 D _inst_2 X.0 (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, u1, max (succ u3) (succ u2), u1} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) G)) (CategoryTheory.Functor.associator.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2 X.0 (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) G)) (CategoryTheory.NatTrans.app.{max u3 u2, max u3 u2, max (max (max (max u3 u2) u1) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, max u3 u2, max u3 u2, max (max (max (max u3 u2) u1) u2) u3, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G)) (CategoryTheory.Functor.id.{max u3 u2, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Adjunction.counit.{max u3 u2, max u3 u2, max (max (max (succ u3) (succ u2)) u2) u3, max (max (max (max u3 u2) u1) u2) u3} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (Prefunctor.obj.{max (succ (max (succ u3) (succ u2))) (succ (max u3 u2)), max (max (max (succ u3) (succ (max (succ u3) (succ u2)))) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max (max (succ u3) (succ u2)) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max (max (succ u3) (succ u2)) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (succ u3) (succ u2), u1} Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2, max (max (max u1 u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2, max (max (max u3 u1) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2)) (CategoryTheory.whiskeringRight.{u3, u2, max (succ u3) (succ u2), max u3 u2, u1, max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2} D _inst_2)) G) (Prefunctor.obj.{max (succ u1) (succ (max u3 u2)), max (max (max (succ u3) (succ u1)) (succ u2)) (succ (max u3 u2)), max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}))) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Category.toCategoryStruct.{max (max (max u3 u1) u2) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})))) (CategoryTheory.Functor.toPrefunctor.{max u1 u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max (succ u3) (succ u2)) u1) u3 u2, max (max (max (max u3 (succ u3) (succ u2)) u1) u2) u3 u2} (CategoryTheory.Functor.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, u1, max (succ u3) (succ u2)} D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.{max u3 u2, max u3 u2, max (max (max u1 u3) u3 u2) u2, max (max (max (max (succ u3) (succ u2)) u3) u3 u2) u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.Functor.category.{max u3 u2, max u3 u2, max (max (max u3 u1) u2) u3 u2, max (max (max u3 (succ u3) (succ u2)) u2) u3 u2} (CategoryTheory.Functor.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, u1} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2) (CategoryTheory.Functor.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2}) (CategoryTheory.Functor.category.{u2, max u3 u2, u3, max (succ u3) (succ u2)} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.whiskeringRight.{u3, u2, u1, max u3 u2, max (succ u3) (succ u2), max u3 u2} (Opposite.{succ u3} C) (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) D _inst_2 Type.{max u2 u3} CategoryTheory.types.{max u3 u2})) (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5)) (CategoryTheory.Adjunction.whiskerRight.{u3, max (succ u3) (succ u2), u1, u2, max u3 u2, max u3 u2} (Opposite.{succ u3} C) Type.{max u2 u3} D (CategoryTheory.Category.opposite.{u2, u3} C _inst_1) CategoryTheory.types.{max u3 u2} _inst_2 G (CategoryTheory.forget.{u1, max u3 u2, max u3 u2} D _inst_2 _inst_5) adj)) X.0)) (CategoryTheory.Sheaf.cond.{u2, max u3 u2, u3, u1} C _inst_1 J D _inst_2 X))
+Case conversion may be inaccurate. Consider using '#align category_theory.Sheaf.adjunction_to_types_counit_app_val CategoryTheory.Sheaf.adjunctionToTypes_counit_app_valₓ'. -/
@[simp]
theorem adjunctionToTypes_counit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
(X : Sheaf J D) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -24,13 +24,9 @@ open GrothendieckTopology CategoryTheory Limits Opposite
universe v u
variable {C : Type u} [Category.{v} C] (J : GrothendieckTopology C)
-
variable {D : Type*} [Category D]
-
variable {E : Type*} [Category E]
-
variable {F : D ⥤ E} {G : E ⥤ D}
-
variable [HasWeakSheafify J D] [HasSheafCompose J F]
/-- The forgetful functor from `Sheaf J D` to sheaves of types, for a concrete category `D`
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
import Mathlib.CategoryTheory.Adjunction.Whiskering
-import Mathlib.CategoryTheory.Sites.ConcreteSheafification
import Mathlib.CategoryTheory.Sites.Whiskering
+import Mathlib.CategoryTheory.Sites.Sheafification
#align_import category_theory.sites.adjunction from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
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.
@@ -21,32 +21,26 @@ namespace CategoryTheory
open GrothendieckTopology CategoryTheory Limits Opposite
-universe w₁ w₂ v u
+universe v u
variable {C : Type u} [Category.{v} C] (J : GrothendieckTopology C)
-variable {D : Type w₁} [Category.{max v u} D]
+variable {D : Type*} [Category D]
-variable {E : Type w₂} [Category.{max v u} E]
+variable {E : Type*} [Category E]
variable {F : D ⥤ E} {G : E ⥤ D}
-variable [∀ (X : C) (S : J.Cover X) (P : Cᵒᵖ ⥤ D), PreservesLimit (S.index P).multicospan F]
-
-variable [ConcreteCategory.{max v u} D] [PreservesLimits (forget D)]
+variable [HasWeakSheafify J D] [HasSheafCompose J F]
/-- The forgetful functor from `Sheaf J D` to sheaves of types, for a concrete category `D`
whose forgetful functor preserves the correct limits. -/
-abbrev sheafForget : Sheaf J D ⥤ SheafOfTypes J :=
+abbrev sheafForget [ConcreteCategory D] [HasSheafCompose J (forget D)] :
+ Sheaf J D ⥤ SheafOfTypes J :=
sheafCompose J (forget D) ⋙ (sheafEquivSheafOfTypes J).functor
set_option linter.uppercaseLean3 false in
#align category_theory.Sheaf_forget CategoryTheory.sheafForget
--- We need to sheafify...
-variable [∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)]
- [∀ X : C, HasColimitsOfShape (J.Cover X)ᵒᵖ D]
- [∀ X : C, PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] [ReflectsIsomorphisms (forget D)]
-
namespace Sheaf
noncomputable section
@@ -63,21 +57,21 @@ set_option linter.uppercaseLean3 false in
def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
((composeAndSheafify J G).obj X ⟶ Y) ≃ (X ⟶ (sheafCompose J F).obj Y) :=
let A := adj.whiskerRight Cᵒᵖ
- { toFun := fun η => ⟨A.homEquiv _ _ (J.toSheafify _ ≫ η.val)⟩
- invFun := fun γ => ⟨J.sheafifyLift ((A.homEquiv _ _).symm ((sheafToPresheaf _ _).map γ)) Y.2⟩
+ { toFun := fun η => ⟨A.homEquiv _ _ (toSheafify J _ ≫ η.val)⟩
+ invFun := fun γ => ⟨sheafifyLift J ((A.homEquiv _ _).symm ((sheafToPresheaf _ _).map γ)) Y.2⟩
left_inv := by
intro η
ext1
dsimp
symm
- apply J.sheafifyLift_unique
+ apply sheafifyLift_unique
rw [Equiv.symm_apply_apply]
right_inv := by
intro γ
ext1
dsimp
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [J.toSheafify_sheafifyLift, Equiv.apply_symm_apply] }
+ erw [toSheafify_sheafifyLift, Equiv.apply_symm_apply] }
set_option linter.uppercaseLean3 false in
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
@@ -113,6 +107,8 @@ instance [IsRightAdjoint F] : IsRightAdjoint (sheafCompose J F) :=
section ForgetToType
+variable [ConcreteCategory D] [HasSheafCompose J (forget D)]
+
/-- This is the functor sending a sheaf of types `X` to the sheafification of `X ⋙ G`. -/
abbrev composeAndSheafifyFromTypes (G : Type max v u ⥤ D) : SheafOfTypes J ⥤ Sheaf J D :=
(sheafEquivSheafOfTypes J).inverse ⋙ composeAndSheafify _ G
@@ -132,7 +128,7 @@ theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ for
(Y : SheafOfTypes J) :
((adjunctionToTypes J adj).unit.app Y).val =
(adj.whiskerRight _).unit.app ((sheafOfTypesToPresheaf J).obj Y) ≫
- whiskerRight (J.toSheafify _) (forget D) := by
+ whiskerRight (toSheafify J _) (forget D) := by
dsimp [adjunctionToTypes, Adjunction.comp]
simp
rfl
@@ -143,12 +139,12 @@ set_option linter.uppercaseLean3 false in
theorem adjunctionToTypes_counit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
(X : Sheaf J D) :
((adjunctionToTypes J adj).counit.app X).val =
- J.sheafifyLift ((Functor.associator _ _ _).hom ≫ (adj.whiskerRight _).counit.app _) X.2 := by
- apply J.sheafifyLift_unique
+ sheafifyLift J ((Functor.associator _ _ _).hom ≫ (adj.whiskerRight _).counit.app _) X.2 := by
+ apply sheafifyLift_unique
dsimp only [adjunctionToTypes, Adjunction.comp, NatTrans.comp_app,
instCategorySheaf_comp_val, instCategorySheaf_id_val]
rw [adjunction_counit_app_val]
- erw [Category.id_comp, J.sheafifyMap_sheafifyLift, J.toSheafify_sheafifyLift]
+ erw [Category.id_comp, sheafifyMap_sheafifyLift, toSheafify_sheafifyLift]
ext
dsimp [sheafEquivSheafOfTypes, Equivalence.symm, Equivalence.toAdjunction,
NatIso.ofComponents, Adjunction.whiskerRight, Adjunction.mkOfUnitCounit]
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-/
import Mathlib.CategoryTheory.Adjunction.Whiskering
-import Mathlib.CategoryTheory.Sites.Sheafification
+import Mathlib.CategoryTheory.Sites.ConcreteSheafification
import Mathlib.CategoryTheory.Sites.Whiskering
#align_import category_theory.sites.adjunction from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
@@ -76,10 +76,15 @@ def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
intro γ
ext1
dsimp
- rw [J.toSheafify_sheafifyLift, Equiv.apply_symm_apply] }
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [J.toSheafify_sheafifyLift, Equiv.apply_symm_apply] }
set_option linter.uppercaseLean3 false in
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF] CategoryTheory.Sheaf.composeEquiv_apply_val
+ CategoryTheory.Sheaf.composeEquiv_symm_apply_val
+
/-- An adjunction `adj : G ⊣ F` with `F : D ⥤ E` and `G : E ⥤ D` induces an adjunction
between `Sheaf J D` and `Sheaf J E`, in contexts where one can sheafify `D`-valued presheaves,
and `F` preserves the correct limits. -/
@@ -76,15 +76,10 @@ def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
intro γ
ext1
dsimp
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [J.toSheafify_sheafifyLift, Equiv.apply_symm_apply] }
+ rw [J.toSheafify_sheafifyLift, Equiv.apply_symm_apply] }
set_option linter.uppercaseLean3 false in
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
--- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
-attribute [nolint simpNF] CategoryTheory.Sheaf.composeEquiv_apply_val
- CategoryTheory.Sheaf.composeEquiv_symm_apply_val
-
/-- An adjunction `adj : G ⊣ F` with `F : D ⥤ E` and `G : E ⥤ D` induces an adjunction
between `Sheaf J D` and `Sheaf J E`, in contexts where one can sheafify `D`-valued presheaves,
and `F` preserves the correct limits. -/
@@ -76,10 +76,15 @@ def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
intro γ
ext1
dsimp
- rw [J.toSheafify_sheafifyLift, Equiv.apply_symm_apply] }
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [J.toSheafify_sheafifyLift, Equiv.apply_symm_apply] }
set_option linter.uppercaseLean3 false in
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF] CategoryTheory.Sheaf.composeEquiv_apply_val
+ CategoryTheory.Sheaf.composeEquiv_symm_apply_val
+
/-- An adjunction `adj : G ⊣ F` with `F : D ⥤ E` and `G : E ⥤ D` induces an adjunction
between `Sheaf J D` and `Sheaf J E`, in contexts where one can sheafify `D`-valued presheaves,
and `F` preserves the correct limits. -/
@@ -2,16 +2,13 @@
Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.sites.adjunction
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Adjunction.Whiskering
import Mathlib.CategoryTheory.Sites.Sheafification
import Mathlib.CategoryTheory.Sites.Whiskering
+#align_import category_theory.sites.adjunction from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
/-!
In this file, we show that an adjunction `F ⊣ G` induces an adjunction between
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -83,7 +83,6 @@ def composeEquiv (adj : G ⊣ F) (X : Sheaf J E) (Y : Sheaf J D) :
set_option linter.uppercaseLean3 false in
#align category_theory.Sheaf.compose_equiv CategoryTheory.Sheaf.composeEquiv
-set_option maxHeartbeats 800000 in
/-- An adjunction `adj : G ⊣ F` with `F : D ⥤ E` and `G : E ⥤ D` induces an adjunction
between `Sheaf J D` and `Sheaf J E`, in contexts where one can sheafify `D`-valued presheaves,
and `F` preserves the correct limits. -/
@@ -138,7 +137,6 @@ theorem adjunctionToTypes_unit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ for
set_option linter.uppercaseLean3 false in
#align category_theory.Sheaf.adjunction_to_types_unit_app_val CategoryTheory.Sheaf.adjunctionToTypes_unit_app_val
-set_option maxHeartbeats 800000 in
@[simp]
theorem adjunctionToTypes_counit_app_val {G : Type max v u ⥤ D} (adj : G ⊣ forget D)
(X : Sheaf J D) :
The unported dependencies are